Brevet FR2813131A1 — publié le 20020222

PROCEDE DE PAGINATION DE LA MEMOIRE VIVE DYNAMIQUE ET SA STRUCTURE L'invention concerne un procédé de pagination de la mémoire vive dynamique (DRAM) et sa structure, et en particulier, un procédé permettant de rediriger les pages mémoire erronées et inopérantes de la DRAM vers la mémoire normale pré-chargée en fin de mémoire, de telle sorte que la mémoire défectueuse puisse normalement fonctionner. Le module 1 de mémoire vive dynamique (DRAM) comporte une série de DRAM 10, chaque DRAM 10 consistant en une unité de mémoire composée de pages mémoire permanentes 11 (ou cellules permanentes). Comme représenté à la figure 1, la DRAM 10 comporte 16 Mo de mémoire qui sont divisés en 4096 pages mémoire 11 (de 000 à FFF) dont la taille est de 4 Kb, le système accédant à la DRAM d'enregistrement 1 par l'intermédiaire d'un contrôleur de mémoire 20 et commande l'accès à chaque page mémoire de la DRAM 10 par le support logique 12 du module DRAM 1. Lorsque le système est lancé, le BIOS détecte la DRAM 10. De nombreuses erreurs ou défauts dus à des défaillances ou des incidents peuvent survenir au cours de la fabrication des DRAM 10, provoquant des défaillances dans les pages mémoire 11 ou les cellules de la DRAM 10. Lorsque le système accède à la DRAM 10 et détecte une défaillance, par exemple à 1a page mémoire A03, tout le système s'arrêtera à cette page mémoire A03 et sera alors contraint de renoncer à accéder au module DRAM 1 défectueux. Dans les assistants personnels numériques, ou autres systèmes de communication de petite dimension, la DRAM 10 est le plus souvent noyée dans la carte mère. Si la DRAM 10 présente des défaillances, toutes les fonctions du module DRAM 1 seront affectées et le support logique ne pourra pas accéder à la page mémoire 11, ce qui provoquera le blocage du système, l'abandon de la mémoire inopérante, et même l'arrêt de tout le système. Non seulement, ceci réduit le rendement des fabricants de DRAM mais également corrompt le système ou d'autres composants de la DRAM 10 qui fonctionnaient normalement, et provoque des dégâts importants. L'un des buts de la présente invention est donc de proposer un procédé de pagination de la mémoire vive dynamique (DRAM) et sa structure. La présente invention décrit un contrôleur de mémoire et son mode de fonctionnement pour déplacer une page mémoire erronée à remplacer en final par une page en état de telle sorte que le fonctionnement du système ne soit pas interrompu à cause des pages mémoire endommagées, et n'ait pas à se bloquer sur tout le module de mémoire. Dans ce but, le procédé comporte une procédure d'initialisation et une procédure de traitement. Lors de la procédure d'initialisation, on vérifie et détecte l'existence de défaillances dans la page mémoire de la mémoire et on crée une table de registre associatif qui indique les adresses défectueuses et les nouvelles adresses correspondantes. La procédure de traitement en tant que telle est exécutée une fois la procédure d'initialisation achevée. Une table de recherche rapide de page est créée en fonction des résultats de la procédure d'initialisation, pour indiquer à la page ou à l'unité de mémoire de fonctionner en mode normal ou en mode pagination. Les pages mémoire en état remplacent alors les pages mémoire erronées en fonction des données enregistrées dans la table de recherche rapide de page, et les pages mémoire erronées sont déplacées vers des adresses en fin de mémoire de telle sorte que celle ci puisse fonctionner sans défaut. La structure de la page mémoire vive dynamique revendiquée est la suivante. Le contrôleur de mémoire comporte un contrôleur de l'accès à chaque page mémoire, ce contrôleur ayant une mémoire (par exemple de type flash ou à accès aléatoire) pour stocker la table de registre associatif, une mémoire vive statique (SRAM) pour stocker la table de recherche rapide de page qui indique si la mémoire fonctionne en mode normal ou en mode pagination. D'autres caractéristiques et avantages de la présente invention ressortiront de la description détaillée ci-après, effectuée en référence aux dessins annexés. La figure 1 est une représentation schématique de la structure d'un module de mémoire conventionnelle La figure 2 est une vue schématique de la structure d'un module de mémoire selon la présente invention. La figure 3 est un diagramme de la procédure d'initialisation selon la présente invention, et La figure 4 est un diagramme de la procédure de traitement selon la présente invention. Dans les différentes figures, les mêmes références renvoient aux mêmes éléments. Comme représenté à la figure 2, la structure de page mémoire DRAM décrite comporte une mémoire vive dynamique (DRAM) 30 et un contrôleur de mémoire 20, la DRAM 30 comprenant une série de pages mémoire 31 (ou cellules) et le contrôleur de mémoire 20 comprenant un contrôleur 21 supervisant l'accès à chaque page mémoire 31 et possédant une mémoire 22 interne pour stocker les résultats des paramètres de stockage (décrits plus loin), une mémoire vive statique (SRAM) 23 qui stocke une table de recherche rapide de page comportant une série de bits d'attribut qui marquent les pages mémoire pour indiquer si les pages mémoire 31 fonctionnent en mode normal ou en mode pagination (qui sera détaillé ci- après). Le procédé de pagination comporte une procédure d'initialisation et une procédure de traitement. La procédure d'initialisation est représentée à la figure 3. Lorsque la DRAM 30 décrite est sollicitée pour la première fois, ou à chaque lancement du système, la procédure d'initialisation de réaffectation des pages en défaut de la DRAM 30 est exécutée selon les étapes suivantes. Etape A1 : Vérification de la mémoire Le BIOS est initialisé pour vérifier l'existence d'éventuels défauts dans la DRAM 30. Si aucun défaut n'est détecté, l'accès à la DRAM 30 fonctionne de manière normale. Le BIOS ignorera l'étape de réaffectation des pages en défaut (étape A2) et exécutera un contrôle de caractéristiques (étape A3). Si des défauts sont détectés dans la DRAM 30, le BIOS exécute la procédure d'établissement d'une table de registre associatif (étape A2) Etape A2 : Réaffectation des pages en défaut Lorsqu'une défaillance est détectée dans la DRAM 30, le système exécute la procédure d'établissement d'une table de registre associatif (TLB) pour indiquer les adresses défectueuses et indexer les nouvelles adresses. La TLB est stockée dans la mémoire 32 du contrôleur de mémoire 20 (figure 2), qui peut être de type flash ou à accès aléatoire (RAM). Par exemple, en référence à la figure 2 et au tableau 1, les pages mémoire 000, 003, A02 et A03 présentent des défaillances et sont marquées comme nouvelles pages mémoire FFC, FFD, FFE et FFF. Ancienne page b Nouvelle page 000 FFC 003 FFD A0_2 FFE A03 -r FFF -. Tableau 1 Etape A3: Traitement des attributs de page Dans le TLB, le contrôleur 21 fournit une série de paramètres choisis par l'utilisateur en plus des indexations d'adresses. Les paramètres choisis peuvent être utilisés dans les pages mémoire erronées et dans les pages mémoire normales, y compris des attributs tels que lecture seule, lecture unique, lecture double, écriture seule, écriture unique, écriture double, translation d'adresse etc. (Tableau 2) Attribut de a e Page Indexation Lecture Lecture Lecture Ecriture Ecriture Ecriture Défaut seule uni ue double seule Unique double 003 FFD Non Non Non Non Non Non 008 Non Oui Oui Non Non Oui Non A02 FFE Non Non Non Oui Oui Oui Tableau 2 Etape A4 Après achèvement de la procédure d'initial isation, le système va créer une table de recherche rapide de page (FPLT) qui sera stockée dans la mémoire vive statique SRAM 23 comme représenté à la figure 2. La FPLT indique si les pages mémoire 31 ou les cellules fonctionnent en mode d'accès normal ou en mode pagination. Procédure de traitement (figure 4) Si l'on prend l'exemple d'un module DRAM de 16Mo, on dispose de 4096 pages mémoire 31 (ou cellules) de taille 4Ko. La taille de la SRAM correspond au nombre de la page mémoire indexée. La SRAM 23 (4Ko ou 4096 bits) correspond à la page mémoire 31 de chaque DRAM 30 pour indiquer si la page mémoire 1 fonctionne en mode d'accès normal ou en mode pagination. La procédure de traitement effective comporte une procédure unique d'indexation à double niveau. La première indexation vérifie le FPLT stocké dans la SRAM 23, comme illustré dans le tableau 3 (étape B1). Quand le bit de la SRAM 23 correspondant à telle page mémoire 31 donnée est à l'état 0 , cette page mémoire fonctionne en mode d'accès normal (étape B2). Quand le bit de la SRAM 23 correspondant telle page mémoire 31 donnée est à l'état 1 , cette page mémoire fonctionne en mode pagination (étape B2). Ensuite, l'indexation de second niveau intervient. Le contrôleur de système vérifie la TLB stockée dans la mémoire flash du contrôleur 21 (étape 133) pour extraire les attributs de page et les adresses réelles vers la DRAM. Page 000 10011002 003 . . 008 . . A02 A03 ... FFC FFD FFE FFF FPLT 1 1010._ 1 1 1 1 Tableau 3 Par exemple, dans le tableau 3, la FPLT de la page 000 est 1 parce qu'il s'agit d'une page en défaut. Par ailleurs, même si la page 008 ne présente pas de défaillance, le FPLT de la page peut être 1 , à cause de l'attribut lecture seule ou écriture immédiate choisi par l'utilisateur. Si plusieurs pages mémoire 31 ne fonctionnent pas normalement (comme illustré dans le tableau 1, les pages mémoires 000, 003, A02 et A03 sont détectées comme erronées), le défaut sera inscrit dans la mémoire flash 22. Lorsque le système est lancé, le résultat de la vérification des pages mémoire en défaut 31 est chargé dans la SRAM 23 et on peut rapidement savoir si ces pages 31 sont défectueuses en se référant au FPLT qui y est stocké. Selon la présente invention, les pages mémoire erronées seront remplacées par des pages mémoire en état avec des adresses situées en fin de la DRAM 30. Comme représenté à la figure 1, quatre pages mémoire sont erronées et doivent être remplacées. La TLB signale les adresses FFC, FFD, FFE et FFF afin d'y remplacer les pages mémoire erronées (étape B4). Ainsi, la page mémoire 000 est remplacée par la page mémoire FFC, la page mémoire 003 est remplacée par la page mémoire FFD, la page mémoire A02 est remplacée par la page mémoire FFE et la page mémoire A03 est remplacée par la page mémoire FFF. Les pages mémoires erronées sont ajoutées aux adresses en fin de DRAM 30. Comme des pages mémoires dans la DRAM 30 sont défectueuses, après avoir remplacé les pages mémoire erronées par des pages en état, le processus d'initialisation reportera le nombre total de page mémoire 31 dans le processeur du système en excluant les pages mémoire en défaut (4092 pages mémoire dans le cas présent) de telle sorte qu'aucun accès à des pages mémoire en défaut ne se produise lors du prochain accès aux pages mémoire 31. Pour conclure, selon le procédé de pagination de la mémoire vive dynamique et sa structure tels que décrits, lorsque des pages mémoire erronées 31 sont détectées lors de l'accès aux pages mémoire 31, la dernière partie des pages mémoire 31 en état sera utilisée pour remplacer les pages erronées, et les pages mémoire 31 erronées sont ajoutées aux adresses en fin de DRAM 30 de telle sorte que la mémoire 31 puisse fonctionner normalement et correctement, même avec des défauts. Le système ne se bloquera pas simplement parce qu'une unique page mémoire DRAM est en défaut. II ne sera plus nécessaire de consacrer des ressources et des fonds pour remplacer toute une unité de mémoire parce qu'une seule page mémoire est défectueuse, Par rapport à l'art antérieur, la présente invention procure une solution efficace au problème du remplacement de l'intégralité de la DRAM en cas de défaillance de mémoire. L'invention décrite ci-dessus peut bien évidemment présenter de nombreuses variantes. Ces variantes ne doivent pas être considérées comme s'écartant de l'esprit et de l'objet de l'invention et toute modification évidente pour l'homme de l'art rentre dans le champs des revendications ci-après. REVENDICATIONS 1. Procédé de pagination de la mémoire vive dynamique (DRAM) comportant une procédure d'initialisation et une procédure de traitement, dans lequel la procédure d'initialisation comporte les étapes suivantes - vérification de la mémoire pour détecter si des défauts existent dans une page mémoire - réaffectation des pages en défaut pour créer une table de registre associatif (TLB) pour indiquer les adresses défectueuses et indexer les nouvelles adresses - traitement des attributs de page pour définir les critères de sélection qui déterminent les modes de fonctionnement des pages mémoire dans la TLB - création d'une table de recherche rapide de page (FPLT) en fonction des résultats de la procédure d'initialisation pour indiquer si les pages mémoire ou l'unité de mémoire fonctionnent en mode d'accès normal ou en mode pagination, la procédure de traitement vérifiant la TLB et la FPLT pour remplacer les pages mémoire erronées par des pages mémoire en état, et ajouter les pages erronées aux adresses en fin de mémoire. 2. Procédé selon la revendication 1, dans lequel la procédure d'initialisation est démarrée par le BIOS. 3. Procédé selon la revendication 1, dans lequel les attributs de page incluent des paramètres tels que lecture seule, écriture seule, écriture unique et lecture unique qui sont applicables à la fois à la mémoire en défaut et à la mémoire normale. 4. Procédé selon la revendication 1, dans lequel après remplacement des pages mémoire dans la procédure de traitement, la procédure d'initialisation reporte le nombre total de page mémoire 31 dans le processeur du système en excluant les pages mémoire en défaut de telle sorte qu'aucun accès à des pages mémoire en défaut ne se produise lors du prochain accès aux pages mémoire. 5. Procédé selon la revendication 1, dans lequel la procédure de traitement comporte une procédure unique d'indexation à double niveau pour vérifier les bits d'indexation dans la FPLT stockée dans la SRAM afin d'identifier les pages mémoire. 6. Procédé selon la revendication 5, dans lequel la première indexation indique que la page mémoire fonctionne en mode normal lorsque la valeur du bit est 0 , la deuxième indexation étant appliquée et la page mémoire fonctionnant en mode pagination lorsque la valeur du bit est 1 , le contrôleur de système vérifiant la TLB stockée dans la mémoire flash du contrôleur pour extraire les attributs de page et les adresses réelles vers la D RAM. 7. Structure de DRAM comportant - au moins une mémoire vive dynamique (DRAM) comprenant une série de pages mémoire (cellules) - un contrôleur de mémoire comprenant un contrôleur supervisant l'accès à chaque page mémoire et possédant une mémoire pour stocker les résultats de la procédure d'initial isation, une mémoire vive statique (SRAM) qui stocke une table de recherche rapide de page comportant une série de bits d'attribut qui marquent les pages mémoire pour indiquer si les pages mémoire fonctionnent en mode normal ou en mode pagination. 8. Structure de DRAM selon la revendication 8, dans laquelle la mémoire est une mémoire volatile pouvant être la mémoire flash ou le RAM. 9. Structure de DRAM selon la revendication 8, dans laquelle la taille de la SRAM correspond au nombre de pages mémoire.