Brevet FR2808904A1 — publié le 20011116

Domaine de l'invention La présente invention concerne les systèmes mémoires d'ordinateur et plus particulièrement un système accès mémoire et une méthode destinés à améliorer la disponibilité des systèmes mémoires comprenant des sous-systèmes de mémorisation et permettant de remplacer automatiquement un sous-système de mémorisation sans perdre de donnees ni perturber l'ordinateur qui utilise un tel système mémoire. Etat de la technique Sur les ordinateurs actuels, le système mémoire est généralement constitué de multiples sous-systèmes de mémorisation, à savoir des cartes telles que des modules DIMMs (Dual In-line Memory Module). Les DIMMs sont constitués de plusieurs puces électroniques SDRAMs (Synchronous Dynamic Random Access Memory), le nombre de puces dépendant de la taille de la mémoire DIMM, de la largeur du bus de données, etc.. Généralement, pour stocker des données dans un sous-système de mémorisation contenant plusieurs puces mémoires pouvant contenir chacune mots d'un octet, les données sont divisées en octets, le premier octet étant stocké dans une première puce mémoire, le deuxième octet dans une deuxième puce mémoire, etc.. Ces puces mémoires sont sujettes à différents types de défaillances - des défaillances logicielles qui sont des défaillances intermittentes dues à des parasites extérieurs, par exemple des particules Alpha ; elles disparaissent si le mot est réécrit sur l'emplacement mémoire défaillant ou après une réinitialisation de la mémoire, et - des défaillances matérielles qui sont des défauts permanents affectant une puce mémoire, par exemple des micro courts-circuits ; elles restent définitivement, même apres une réinitialisation de la mémoire. Ces défaillances, lorsqu'elles se produisent, peuvent endommager le contenu du système mémoire et perturber ainsi le bon fonctionnement de l'application activée l'ordinateur il faut alors généralement arrêter l'ordinateur pour remplacer le sous-système de mémorisation défaillant. Pour réduire les effets de ces défaillances, on utilise généralement des codes de correction d'erreurs (ECC, Error Correcting Code). En effet, les ECCs ont la capacité corriger automatiquement les erreurs se produisant dans seule puce mémoire sans perturber le fonctionnement du système mémoire. Pour cela, le code ECC exécute des fonctions d'écriture et de lecture pouvant être localisées dans le contrôleur de mémoire, qui détectent les mots erronés et les corrigent automatiquement grâce aux bits ECC qui sont stockés dans des puces mémoires additionnelles du sous-système de mémorisation. Par exemple, le code Single Error Correction (SEC) peut corriger une erreur dans une seule puce mémoire, le code Double Error Correction (DEC) permet de corriger deux erreurs situées dans une même puce mémoire, et enfin le code Block Error Code (BEC) permet de corriger toutes les erreurs situées dans une même puce mémoire. Ainsi, le code 8-bits Block Error Code, dérivé de la théorie des codes de Bose-Chaudhuri-Hocquenghem, est capable de corriger plusieurs erreurs réparties de manière aléatoire dans une puce mémoire. Avec deux octets supplémentaires par mot de 64 bits, cette méthode permet de corriger jusqu'à 8 bits dans une puce mémoire capable de mémoriser des mots d'un octet. Toutefois, les défaillances matérielles étant des défauts permanents, les cartes qui constituent les sous-systèmes de mémorisation dans lesquels des défaillances matérielles se sont produites doivent être remplacées pour conserver un niveau de disponibilité élevé du système mémoire, c'est à dire pour éviter qu'une partie du contenu de la mémoire soit perdu lorsque des erreurs se produisent dans au moins deux puces différentes d'un même sous-système de mémorisation. Dans ce cas, l'utilisateur doit éteindre l'ordinateur et remplacer les sous-systèmes de mémorisation défaillants. De même, pour étendre la capacité sous-systèmes de mémorisation, il faut éteindre l'ordinateur. Résumé de l'invention L'un des objets de l'invention est de proposer système d'accès à un système mémoire composé de multiples sous-systèmes de mémorisation afin d'augmenter disponibilité et la fiabilité de l'ordinateur utilisant ce système mémoire. L'invention a aussi pour objet de proposer un système d'accès à un système mémoire composé de multiples sous-systèmes de mémorisation dans lequel un sous-système de mémorisation peut être remplacé sans perturber l'ordinateur. L'invention a également pour objet de proposer système d'accès à un système mémoire composé de multiples sous-systèmes de mémorisation dans lequel un sous-système mémorisation peut être remplacé automatiquement sans perturber l'ordinateur. Enfin, l'invention a aussi pour objet de proposer une méthode pour copier et pour corriger le contenu un sous-système de mémorisation dans un autre sous-système de mémorisation. Ces objectifs, ainsi que d'autres objectifs connexes, peuvent être atteints par un système pour accéder à mémoire composée de multiples sous-systèmes de mémorisation indépendants et amovibles, ladite mémoire étant adaptée pour FR9 1999 0127 enregistrer des mots constitués de n éléments unitaires, ledit système comprenant - des moyens de codage pour coder chacun des mots de n éléments unitaires à enregistrer dans la mémoire dans un mot de n+m éléments unitaires, les m éléments unitaires étant des éléments unitaires de correction d'erreur, - des moyens d'entrée de mot pour appliquer chacun des n+m éléments unitaires d'un mot à un sous-système de mémorisation différent desdits multiples sous-systèmes de mémorisation, lesdits moyens étant capables appliquer n'importe lequel des n+m éléments unitaires d' mot à au moins l'un desdits multiples sous-systemes de memorisation, appelé sous-système de memorisation additionnel, - des moyens de sortie de mot pour accéder à chacun des éléments unitaires d'un mot à partir desdits multiples sous-systèmes de mémorisation, - moyens de décodage recevant chacun des éléments unitaires d'un mot pour produire un mot de éléments unitaires sans erreur, et - des moyens d'isolation logique associés à chacun desdits multiples sous-systèmes de mémorisation, capables d'isoler logiquement chacun desdits multiples sous-systèmes de mémorisation. Ces objectifs, ainsi que d'autres objectifs connexes, peuvent aussi être atteints par une méthode pour corriger et copier le contenu de l'un des multiples sous-systèmes de mémorisation, représentant des éléments unitaires de mots, dans un sous-système de mémorisation additionnel du système décrit précédemment, comprenant les étapes suivantes a. mise à zéro d'un indice d'adresse et activation des sous-systèmes de mémorisation contenant les éléments unitaires desdits mots, b. désactivation dudit sous-système de mémorisation additionnel, activation dudit un desdits multiples sous-systèmes de mémorisation, lecture du mot situé à l'emplacement défini par ledit indice d'adresse et, si une erreur est détectée, correction dudit mot ' l'aide desdits moyens de décodage, c. désactivation dudit un desdits multiples sous-systèmes de mémorisation, activation dudit sous-système de mémorisation additionnel et écriture de l'élément unitaire contenu dans ledit un desdits multiples sous-systèmes de mémorisation, corrigé si nécessaire, dans ledit sous-système de mémorisation additionnel ' l'emplacement défini par ledit indice d'adresse, d. augmentation dudit indice adresse d'une unité, e. comparaison dudit indice d'adresse avec la valeur maximum qu'il peut atteindre, si ledit indice d'adresse n' pas atteint ladite valeur maximum, répétition des trois dernières étapes et, si ledit indice d'adresse a atteint ladite valeur maximum, fin du processus, et une méthode pour corriger et copier le contenu d'un sous système de mémorisation additionnel, représentant des éléments unitaires de mots, dans l'un des multiples sous-systèmes de mémorisation du système décrit précédemment, comprenant les étapes suivantes a. mise à zéro d'un indice d'adresse et activation des sous-systèmes de mémorisation contenant les éléments unitaires desdits mots, b. désactivation dudit un desdits multiples sous-systèmes de mémorisation, activation dudit sous-système de mémorisation additionnel, lecture du mot situé à l'emplacement défini par ledit indice d'adresse et, si une erreur est détectée, correction dudit mot ' l'aide desdits moyens de décodage, c. désactivation dudit sous-système mémorisation additionnel, activation dudit un desdits multiples sous-systèmes de mémorisation et écriture de l'élément unitaire contenu dans ledit sous-système mémorisation additionnel, corrigé si nécessaire, dans ledit un desdits sous-systèmes de mémorisation à l'emplacement défini par ledit indice d'adresse, d. augmentation dudit indice d'adresse d' unité, et e. comparaison dudit indice d'adresse avec la valeur maximum qu'il peut atteindre, si ledit indice d'adresse n'a pas atteint ladite valeur maximum, répétition des trois dernières étapes et, si ledit indice d'adresse a atteint ladite valeur maximum, fin du processus. Les innovations caractérisant l'invention sont décrites dans les revendications ci-après. Cependant, l'invention elle-même, ainsi que ses divers objets et avantages, seront mieux compris à la lecture de la description détaillée ci-après en liaison avec les figures d'accompagnement. Brève description des figures Figure 1 illustre le partie logique d'un circuit pouvant être utilisé pour changer un sous-système de mémorisation sans perturber l'ordinateur. Figure 2 , comprenant les figures 2A et 2B, est une représentation des fonctions de lecture et d'écriture utilisées pour détecter, localiser et corriger des bits erronés. Figure 3 illustre un circuit d'alimentation électrique pouvant être utilisé avec le circuit représenté sur la figure 1. La Figure 4 représente la partie logique d'un circuit implémentant l'invention. La Figure 5 illustre un circuit d'alimentation électrique pouvant être utilisé avec le circuit représenté sur la figure 4. La Figure 6 montre les étapes principales d' algorithme illustrant la méthode de l'invention. La Figure 7 présente un système mémoire illustrant la façon d'étendre la capacité de mémoire selon l'invention. Description d'un mode de réalisation de l'invention Selon 'invention, les mots à mémoriser sont découpés en plusieurs parties, appelées sous-mots qui sont enregistrées dans différents sous-systèmes de mémorisation indépendants et amovibles. Ainsi, le premier sous-mot est enregistré dans un premier sous-système de mémorisation, le deuxième sous-mot est enregistré dans un deuxième sous-système de mémorisation, etc.. Le mode particulier de réalisation de l'invention décrit concerne l'utilisation de sous-systèmes de mémorisation, par exemple des DIMMs standards, appelés cartes mémoires par souci de clarté, capables de mémoriser des mots 64 bits. Cependant, il faut comprendre que l'invention peut être mise en #uvre avec n'importe quel type de mémoire indépendante et amovible capable de mémoriser des mots d'une longueur quelconque. Lorsqu'on utilise l'invention pour mémoriser des mots de 64 bits, il faut dix cartes mémoires contenant des puces mémoires capables de stocker r octets. Les huit premières cartes mémoires servent à enregistrer les octets de données et les deux dernières cartes mémoires servent à enregistrer les octets BEC. La figure 1 représente les éléments logiques d'un circuit qui permet de remplacer une carte mémoire défaillante sans perturber l'ordinateur. Comme indiqué, ce circuit comprend dix cartes mémoires 100-1 à 100-10. Les bus d'entrée/sortie de données des puces mémoires contenues dans chaque carte mémoire sont interconnectés pour créer bus d'entrée/sortie de données 110-1 à 110-10 qui forment eux-mêmes un bus global d'entrée/sortie de données 115 connecté au contrôleur de mémoire 120. Le contrôleur de mémoire 120 est aussi connecté au bus BYTE Select , au bus d'adresses 130, au bus Memory Card Select 135 et bus Bus Insulation 140 qui sont connectés aux éléments de commutation de bus 145-1 à 145-10. Chacun de ces éléments de commutation de bus est associé à une carte mémoire pour transmettre ou non les signaux des bus BYTE_Select, d'adresses et Memory Card Select, selon la valeur du signal du bus Bus Insulation. Le contrôleur de mémoire 120 contient des fonctions d'écriture et de lecture (respectivement 150 et 160) qui sont connectées au bus global d'entrée/sortie de données 115. La fonction d'écriture est reliée au bus standard d'entrée de données 170 et la fonction de lecture au bus standard de sortie de données 180. Le contrôleur de mémoire 120 est connecté au bus de contrôle 190. Les bus 180 et 190 sont des bus standards destinés à connecter contrôleur de mémoire à un ordinateur. Dans ce mode réalisation, les cartes mémoires 100-1 à -8 servent à enregistrer les huit octets de données d'un de 64 bits et les cartes mémoires 100-9 et 100-10 à enregistrer les deux octets BEC associés. Par exemple, le premier octet du mot 105-1 est enregistré dans le premier emplacement mémoire de la première puce mémoire de la carte memoire 100-1, le deuxième octet de ce mot est enregistré dans le premier emplacement mémoire de la première puce mémoire de la carte mémoire 100-2, etc.. Les bus entrées/sorties de données 8 bits de toutes les puces mémoires de chaque carte mémoire sont interconnectés pour créer les bus 110-1 à 110-10 afin de constituer le bus 115 de bits qui est connecté au contrôleur de mémoire 120 pour permettre aux cartes mémoires et à l'ordinateur d'échanger des données. Pour contrôler les adresses et les puces activées, le contrôleur de mémoire 120 utilise le bus BYTE Select 125 et le bus d'adresses 130. Le bus BYTE Select 125 sert à sélectionner les puces mémoires dans carte mémoire de telle manière que, si la carte mémoire contient 8 puces mémoires, 8 bits sont utilisés pour activer ou désactiver chacune des 8 puces mémoires. Le bus adresses 130 sélectionne un emplacement de mémoire dans toutes les puces mémoires sélectionnées par le bus BYTE Select Dans le circuit représenté sur la figure 1, ce bus comprend bits car généralement 12 bits multiplexés sont utilisés pour définir une adresse, c'est à dire pour sélectionner une ligne et une colonne dans une puce mémoire. Dans le mode de réalisation décrit, les dix cartes mémoires 100-1 à -10 doivent être activées en même temps pour accéder à une donnée complète ; ainsi le bus Memory Card Select 135 qui sert à activer ou désactiver une carte mémoire n'a besoin que d'un bit. Pour ajouter ou supprimer une carte mémoire sans perturber les neuf autres, elles doivent être isolées électriquement et logiquement les unes par rapport aux autres. Concernant la partie logique de ce circuit, le bus BUS Insulation 140 connecté au contrôleur de mémoire 120 commande chacun des éléments de commutation de bus 145-1 à 145 10. Ainsi, ce bus comprend 10 bits à la sortie du contrôleur de mémoire 120 et seulement 1 bit à l'entrée de chaque commutateur de bus. Pour détecter et corriger les mots erronés, le système utilise les fonctions d'écriture 150 et de lecture 160 situées dans le contrôleur de mémoire 120. La fonction de lecture 160 sert aussi à localiser les cartes mémoires défaillantes éventuelles et à prévenir le contrôleur de mémoire 120. Comme indiqué précédemment, les erreurs dues à des défaillances logicielles disparaissent lorsque les données sont réécrites. Ainsi, test consistant à réécrire les données peut être effectué pour déterminer si l'erreur est une défaillance logicielle ou matérielle. Si une défaillance matérielle est détectée, le contrôleur de mémoire 120 peut isoler automatiquement la carte mémoire défaillante avec le bus Bus Insulation 140 pour que l'utilisateur de l'ordinateur puisse la remplacer. Lorsqu'une défaillance matérielle se produit, le contrôleur de mémoire 120 envoie un message via le bus de controle 190 à 1 ordinateur pour informer l'utilisateur de la carte mémoire à remplacer. Le bus de contrôle 190 associé au bus Bus Insulation 140 permet aussi à l'utilisateur de l'ordinateur de désactiver une carte mémoire pour pouvoir la changer après une défaillance matérielle ou dans le cadre d' maintenance. Le système mémoire 195, appelé bloc mémoire, permet de remplacer une carte mémoire sans perturber l'ordinateur. Les figures 2A et 2B illustrent respectivement les circuits des fonctions d'écriture et de lecture. La fonction d'écriture, représentée schématiquement sur la figure 2A, contient un générateur de bits ECC 200 dont l'entrée est le bus standard d'entrée de données 170 et la sortie le bus 210 connecté au bus global d'entrée/sortie de données 115. Le bus standard d'entrée de données 170 est aussi connecté au bus global d'entrée/sortie de données 115. La fonction d'écriture utilise les 64 bits des données transférées de l'ordinateur vers la mémoire de données via le bus standard d'entrée de données 170 pour calculer 16 bits BEC dans le générateur de bits ECC 200 qui sont enregistrés dans la mémoire BEC grâce au bus 210. Ainsi, les données et les bits ECC correspondants sont adressés aux cartes mémoires via le bus global d'entrée/sortie de données 115. La fonction de lecture 160, représentée schématiquement sur la figure 2B, contient un générateur de bits ECC 230 dont l'entrée est connectée au bus global d'entree/sortie de données 115 via le bus 220 et dont la sortie est connectée à une entrée du comparateur 250. Le bus 220 transmet les bits de données du bus global d'entrée/sortie de données 115. Le comparateur 250 est doté d'une seconde entree qui est connectée au bus global d'entrée/sortie de données 115 via le bus 240. Le bus 240 transmet les bits ECC du bus global d'entrée/sortie de données 115. La fonction de lecture 160 contient aussi un correcteur de données 260 dont la première entrée est connectée à la sortie du comparateur 250 et la seconde entrée au bus global d'entrée/sortie de données 115 via le bus 220. La première sortie du correcteur de données est le bus standard de sorties de données 180 sa seconde sortie le bus BYTE in error 270. Pour générer des données valides, c'est a dire sans erreur, la fonction de lecture 160 accède aux données via le bus global d'entrée/sortie de données 115 et le bus 220, et recalcule les bits BEC correspondants dans le générateur de bits ECC 230. Ensuite, elle compare ces bits BEC calculés avec ceux précédemment enregistrés dans la mémoire BEC et associes à ces données, qui sont transférés via le bus global d'entrée/sortie de données 115 et le bus 240 dans le comparateur 250. Selon le résultat de cette comparaison, les données sont corrigées ou non dans le correcteur de données 260. octet défaillant peut être localisé via le bus BYTE ' error 270. Le mot valide de 64 bits sort sur le bus standard de sortie de données 180. figure 3 illustre le circuit d'alimentation électrique du bloc mémoire 195 contenant les dix cartes mémoires 100-1 à 100-10. Un bus standard d'alimentation 300 est connecté aux modules de contrôle d'alimentation 310-1 à 310 qui sont liés aux cartes mémoires 100-1 à 100-10, chaque module de contrôle d'alimentation étant associé à une carte mémoire, par exemple, le module de contrôle d'alimentation 310-1 est connecté à la carte mémoire 100-1. Ces modules de contrôle d'alimentation, qui font office de commutateurs de bus, sont contrôlés par le contrôleur de mémoire 120 via le bus POWER Enable 320. Le bus POWER Enable 320 contient 10 bits à la sortie du contrôleur de mémoire 120 et 1 bit à l'entrée chaque module de contrôle d'alimentation, de sorte que chaque carte mémoire peut être isolée électriquement sans perturber les autres. Pour éviter les dommages électroniques, l'alimentation électrique et les éléments logiques d'un circuit sont généralement séparés ; ainsi, le mode de réalisation décrit comprend deux dispositifs contrôle, POWER_Enable et BUS Insulation. Toutefois, deux dispositifs de contrôle peuvent être réduits à un seul. De même, il est possible d'utiliser un seul commutateur de bus par carte mémoire pour l'isoler logiquement et électriquement. Pour illustrer le circuit susmentionné, supposons que la carte mémoire 100-2 tombe en panne (défaillance matérielle). Grâce aux octets de données contenus dans les cartes mémoires 100-1 et 100-3 à 100-8, grâce aux octets BEC contenus dans les cartes mémoires 100-9 et 100-10 et grâce à la fonction de lecture 160 contenue dans le contrôleur de mémoire 120, les octets inaccessibles enregistrés sur la carte mémoire 100-2 peuvent etre retrouvés. Comme indiqué précédemment, un test consistant à réécrire les données peut être effectué pour déterminer si l'erreur est liée à une défaillance logicielle ou matérielle. Une défaillance matérielle étant détectée dans cet exemple, la carte mémoire 100-2 doit être remplacée. Pour cela, elle peut être isolée logiquement et électriquement avec les bus BUS_Insulation 140 et POWER Enable 320 pour la remplacer par une carte mémoire neuve sans perturber 1 ordinateur. Toutefois, si une deuxième carte mémoire tombe en panne avant que la première ait été remplacée ou que son contenu n'ait été restauré, le système mémoire ne peut pas récupérer données (comme indiqué précédemment, le BEC est incapable de corriger ce type d'erreur). Pour remédier à ce problème, l'invention utilise une carte mémoire additionnelle qui peut être utilisée dès qu'une défaillance matérielle est détectée dans une carte mémoire. La figure 4 représente la partie logique d' circuit implémentant l'invention, basé sur celui décrit précédemment, comprenant une carte mémoire additionnelle 100-11. Cette carte mémoire additionnelle 100-11 est connectée aux bus Memory Card-Select 135, BYTE-Select 125 et d'adresses 130 et peut être activée ou désactivée par l'élément de commutation de bus 145-11 contrôlé par le signal du bus BUS_Insulation 140 qui comprend maintenant 11 bits (un pour chacune des cartes mémoires 100-1 à 100-11). Les bus d'entrée/sortie de données des puces mémoires contenues dans la carte mémoire additionnelle sont interconnectés pour créer le bus d'entrée/sortie données 110-11 qui est connecté au multiplexeur 400 pour être connecté à l'un des bus d'entrée/sortie de données 110-1 à 110-10 des cartes mémoires 100-1 à 100-10. Le multiplexeur 400 est contrôlé par le signal DATA-Select 410 généré par le contrôleur de mémoire 120. Le signal DATA Sélect 410 comprend 4 bits pour définir une des 10 positions de commutation possibles du multiplexeur 400. Ce bloc mémoire ayant une carte mémoire additionnelle porte la référence 195'. La figure 5 illustre un exemple de connexion du module de contrôle d'alimentation optionnel 310-11, commandé par le signal de contrôle d'alimentation POWER Enable 320 comprenant maintenant 11 bits (un pour chacune des cartes mémoires 100-1 à 100-11). Le module de contrôle d'alimentation 310-11 permet d'isoler électriquement la carte mémoire additionnelle 100-11. L'isolation logique et électrique de la carte mémoire additionnelle 100-1l permet de la remplacer sans perturber le système mémoire. L'utilisation du circuit présenté sur la figure 4 permet mettre en oeuvre plusieurs méthodes permettant d'augmenter la disponibilité du système mémoire. La plus simple consiste à utiliser la carte mémoire additionnelle 100-11 pour remplacer une carte mémoire défaillante dès qu'une defaillance matérielle se produit. Ainsi, si une deuxième erreur se produit sur une autre carte mémoire, elle peut être corrigée dans la mesure où les données ont été enregistrees sur la carte mémoire additionnelle après que celle-ci ' remplacé la première carte mémoire défaillante. Cependant cette méthode présente un inconvénient majeur . lorsqu'une défaillance matérielle se produit sur une carte mémoire, cela ne signifie pas nécessairement que tout le contenu de cette carte soit endommagé. Par exemple, si une défaillance matérielle se produit dans une seule puce mémoire d'une carte mémoire, tout le contenu de la carte mémoire est perdu lorsque celle-ci est remplacee par la carte mémoire additionnelle. Pour éviter cela, seconde méthode consiste à utiliser la carte mémoire additionnelle en association avec la carte mémoire dans laquelle une défaillance matérielle a été détectée . la carte mémoire additionnelle n'est utilisée pour lire un mot si ce mot ne peut pas être récupéré avec la carte mémoire dans laquelle la défaillance matérielle a été détectée. Cette seconde méthode consiste à enregistrer la même partie d'un mot sur la carte mémoire dans laquelle la défaillance matérielle a été détectée et sur la carte mémoire additionnelle. Pour lire un mot, la carte mémoire dans laquelle la défaillance matérielle a été détectée est activée et la carte mémoire additionnelle est désactivée. Si les donnees ne sont pas récupérées, c'est à dire si des erreurs produisent dans au moins deux cartes mémoires (comme précédemment, le BEC est incapable de corriger ce type erreur), la première carte mémoire dans laquelle la défaillance matérielle a été détectée est desactivée et la carte mémoire additionnelle est activée et autre lecture est effectuée. Cependant, cette solution présente aussi un inconvenient en ce qui concerne le remplacement de la première carte mémoire défaillante : son contenu sera perdu lorsqu'elle sera retirée. Une troisième méthode consiste à recopier le contenu, après correction, de la carte mémoire défaillante dans la carte mémoire additionnelle. Cette solution présente l'avantage de restaurer le contenu de la carte mémoire défaillante, même si une autre défaillance, matérielle ou logicielle, intervient dans une autre carte mémoire lors de la lecture des données, si cet autre défaillance ne concerne pas les mots dont la partie contenue dans la carte mémoire défaillante est erronée. La figure 6 montre les principales étapes de l'algorithme qui illustre l'utilisation de cette troisième méthode avec le circuit représenté sur la figure 4. Elle représente la procédure de copie du contenu d.'une carte mémoire défaillante dans une carte additionnelle (100-11). Par soucis de clarté, les cartes mémoires sont référencées par MC sur la figure. Lorsqu'une défaillance matérielle a été detectée et localisée dans une carte mémoire à l'aide de la fonction de lecture 160 et du test de réécriture de données (étape 600), l'indice d'adresse ADR est mis à zéro, le multiplexeur (400) est positionné de telle manière que le bus données 110-11 soit relié au bus données de la carte mémoire défaillante par les signaux BYTE-in-error (270) et DATA Select (410), et les cartes mémoires 100-1 à 100-11 sont activées par les signaux Memory Card-Select (135) et BUS Insulation (140) (étape 610 . Par souci de clarté, l'indice ADR est une représentation d'adresse mémoire, c'est à dire une adresse définie par les signaux BYTE Select (125) et d'adresses (130). La carte mémoire additionnelle 100-11 est désactivée et la carte mémoire défaillante est activée par le signal -Insulation (140) pour lire les données situées à l'adresse définie par l'indice ADR (étape 620). Les données lues par la fonction de lecture (160) sont corrigées si une erreur est détectée et la partie de ces données correspondant la carte mémoire défaillante est stockée dans un registre standard (non représenté) qui peut être un registre externe, un registre de contrôleur de mémoire ou un registre interne du processeur de l'ordinateur. Ensuite, carte mémoire défaillante est désactivée et la carte mémoire additionnelle 100-11 est activée par le signal BUS_Insulation (140) et les données stockées dans le registre susmentionné sont réécrites dans la carte mémoire additionnelle 100-11, à l'adresse définie par l'indice ADR (étape 630). L'indice ADR est ensuite incrémenté de 1 (étape 640). Un test est effectué pour contrôler si l'indice ADR est égale à la valeur maximum qui peut être utilisée (étape 650). Si ce n'est pas le cas, le programme boucle pour copier les données situées à la nouvelle adresse définie par l'indice ADR de la carte mémoire défaillante sur la carte mémoire additionnelle et, comme indiqué précédemment, les données lues dans la carte mémoire défaillante sont corrigées si nécessaire (étapes 620 à 650). Si l'indice ADR a atteint sa valeur maximum, le processus est arrêté. Pour illustrer le circuit représenté la figure 4 et l'algorithme décrit ci-dessus, supposons une défaillance matérielle soit détectée dans la carte mémoire 100-2. Grâce système de codage, les données peuvent être récupérées jusqu'à ce qu'une nouvelle erreur se produise sur une autre carte mémoire. Pour éviter cette situation, carte mémoire -2 doit être changée. Etant donné qu'il est possible que l'utilisateur de l'ordinateur ne puisse pas changer la carte mémoire 100-2 lorsque la défaillance matérielle se produit, il peut être utile de remplacer automatiquement la carte mémoire 100-2 par la carte mémoire additionnelle. Pour cela, le contenu de la carte mémoire 100-2 est corrigé et copié sur la carte mémoire supplémentaire 100-11 de sorte que la carte mémoire 100-2 puisse etre remplacée plus tard sans nuire à la disponibilité de 'ordinateur. Le contenu de la carte mémoire additionnelle 100-11 est recopié sur la nouvelle carte mémoire 100-2 après le changement. Tout d'abord, l'indice d adresse ADR est mis à zéro, le multiplexeur est positionné de manière à relier le bus de données 110-11 au bus de données 110-2, les cartes mémoires 100-1 à 100-10 sont activées à l'aide des éléments de commutation de bus 145-1 à 145 10 et la carte mémoire 100-11 est désactivée à l'aide de l'élément de commutation de bus 145-11. Ensuite, les données situées à l'adresse définie par l'indice ADR sont lues dans les cartes mémoires 100-1 à 100-10 et corrigées si nécessaire, comme indiqué précédemment. La carte mémoire 100-2 est désactivée à l'aide de l'élément de commutation de bus 145-2 et la carte mémoire 100-11 est activée à l'aide de l'élément de commutation de bus 145-11 pour enregistrer la partie des données associée à la carte mémoire 100-2 dans la carte mémoire 100-11. I1 faut comprendre que si une erreur a été détectée dans cette partie des données, elle est corrigée avant d'être enregistrée dans la carte mémoire 100-11. Le processus est ensuite répété jusqu'à ce que contenu de la carte mémoire 100-2 ait été corrigé et copié dans la carte mémoire 100-11. A ce stade, une deuxième erreur (défaillance logicielle ou matérielle) peut se produire dans une carte mémoire quelconque sans dommage pour contenu du système mémoire. Si l'utilisateur de l'ordinateur change la carte mémoire 100-2 avant que son contenu ait été corrigé et copié dans la carte mémoire 100-11, il peut être récupéré de la même façon. La carte mémoire 100-2 peut être changée après avoir été isolée à l'aide de l'élément de commutation de bus 145-2 et du module de contrôle d'alimentation 310-2. Lorsque la carte mémoire 100-2 a été changée, le contenu de la carte mémoire 100-11 peut être recopié dans la nouvelle carte mémoire 100-2. D'abord, l'indice d'adresse ADR est mis à zéro les cartes mémoires 100-1 et 100-3 à 100-1l sont activées avec les éléments de commutation de bus 145-1 et 145 à 145-11 et la carte mémoire 100-2 est désactivée avec l'élément de commutation de bus 145-2. Ensuite, les données situées à l'adresse définie par l'indice ADR sont lues dans les cartes mémoires 100-1 et 100-3 à 100-11 et corrigées si nécessaire. La carte mémoire 100-2 est activée avec l'élément de commutation de bus 145-2 et la carte mémoire 100-11 est désactivée avec l'élément de commutation de bus 145-11 pour enregistrer la partie des données associée à carte mémoire l00-11 dans la carte mémoire 100-2. Encore fois il faut comprendre que si une erreur a été détectée dans cette partie des données, elle est corrigée avant d'être enregistrée dans la carte mémoire 100-2. Ensuite, le processus est répété jusqu'à ce que le contenu de la carte mémoire 100-11 soit copié dans la carte mémoire 100-2. Ainsi, à la fin du processus, la carte mémoire défaillante 100 a été remplacée et son contenu a été corrigé et enregistré sans réduire la disponibilité du système mémoire de l'ordinateur. La figure 7 montre un système mémoire qui illustre la façon d'augmenter la quantité de mémoire d'un ordinateur mettant en oeuvre l'invention. Plusieurs blocs mémoires 195 décrits précédemment sont connectés en parallèle (195'-1 195'-q) à l'aide du bus global d'entrée/sortie de données 115 qui est connecté au contrôleur de mémoire 120. Le bus d'alimentation électrique 300, le bus d'adresses 130 et le bus BYTE Select 125 sont communs à tous les blocs mémoires. Les bus POWER Enable et BUS Insulation (respectivement 320 et 140) doivent contrôler chaque carte mémoire indépendamment, c'est pourquoi ils contiennent 11q bits à la sortie du contrôleur de mémoire 120 et 11 bits à l'entrée de chaque bloc mémoire. Le bus Memory Card-Select 135 sert à activer ou désactiver toutes les cartes mémoires un bloc mémoire, 'est pourquoi le bus Memory Card-Select 135 comprend q bits à la sortie du contrôleur de mémoire 120 et 1 bit à l'entrée de chaque bloc de mémoire. De même, le bus BUS Select 410 qui sert à contrôler le multiplexeur 400 de chaque bloc mémoire comprend 4q bits, c'est à dire 4 bits par bloc mémoire. Avec circuit représenté sur la figure 7, 1 accès à un bloc memoire quelconque 195'-i pour des opérations de lecture d'écriture est obtenu en activant toutes les cartes mémoires appartenant à ce bloc (sauf la carte mémoire additionnelle 100-11 ou la carte mémoire qu'elle remplace) et en désactivant toutes les autres cartes mémoires à l'aide des bus Memory Card_Select 135 et BUS-Insulation 140 qui sont gérés par le contrôleur de mémoire 120. accès à l'intérieur d'un bloc mémoire se fait par jeu de sélections de puces mémoires et d'adresses, comme indiqué précédemment. Lorsque la fonction de lecture détecte et corrige un mot erroné, le contrôleur de mémoire peut déterminer si l'erreur est due ou non à une defaillance matérielle et utiliser les informations données par le correcteur de données pour copier son contenu corrigé dans la carte mémoire additionnelle, pour isoler la carte mémoire défaillante et pour informer l'utilisateur de l'ordinateur. Ainsi, l'utilisateur peut remplacer la carte mémoire défaillante sans perturber le système mémoire. Bien que l'invention ait été décrite ici par rapport à un seul mode de réalisation, les spécialistes comprendront qu'elle peut être mise en #uvre avec d'autres types de sous-systèmes de mémorisation amovibles et indépendants et pour d'autres tâches. Notamment, l'invention peut etre utile pour étendre le système mémoire, les cartes mémoires étant remplacées une par une par des cartes mémoires de plus grande capacité, ou pour des besoins de maintenance préventive, sans éteindre l'ordinateur. Ainsi, bien que dans mode de réalisation décrit, le système comprenne une carte mémoire additionnelle dans chaque bloc memoire, les spécialistes peuvent facilement imaginer circuit comprenant une seule carte mémoire additionnelle pour tout système mémoire. Il est également possible d'utiliser un autre moyen de mémorisation tel qu'un disque dur ou une mémoire flash pour sauvegarder le contenu d'une carte mémoire défaillante ou d'une carte mémoire à changer, afin de recharger les données dans la carte mémoire après l'avoir remplacée. Revendications 1. Un système pour accéder à une mémoire composée de multiples sous-systèmes de mémorisation (100-1 à 100-11) indépendants et amovibles, ladite mémoire étant adaptée pour enregistrer des mots constitués de n éléments unitaires, ledit système comprenant - des moyens de codage (150) pour coder chacun des mots de n éléments unitaires à enregistrer dans mémoire dans un mot de n+m éléments unitaires, les m éléments unitaires étant des éléments unitaires de correction d'erreur, - des moyens d'entrée de mot pour appliquer chacun des n+m éléments unitaires d'un mot à un sous-système de mémorisation différent desdits multiples sous-systèmes de mémorisation, lesdits moyens étant capables d'appliquer 'importe lequel des n+m éléments unitaires d'un mot à au moins l'un desdits multiples sous-systèmes de mémorisation, appelé sous-système de mémorisation additionnel, des moyens de sortie de mot pour accéder à chacun des n+m éléments unitaires d'un mot à partir desdits multiples sous-systèmes de mémorisation, - des moyens de décodage (160) recevant chacun des n+m éléments unitaires d'un mot pour produire un mot de n éléments unitaires sans erreur, et des moyens d'isolation logique (145-1 à 145-11) associés à chacun desdits multiples sous-systèmes de mémorisation, capables d'isoler logiquement chacun desdits multiples sous-systèmes de mémorisation. 2. Le système décrit dans la revendication 1, comprenant en outre des moyens d'information associés aux dits moyens décodage (160) pour prévenir l'utilisateur dudit système lorsqu'une défaillance est détectée dans au moins un desdits multiples sous-systèmes de mémorisation. Le système décrit dans la revendication 1, comprenant en outre des moyens d'information associés aux dits moyens de décodage (160) pour prévenir l'utilisateur dudit système lorsqu'une défaillance matérielle est détectée dans au moins un desdits multiples sous-systèmes de mémorisation. 4. Le système décrit dans l'une des revendications à 3, comprenant en outre des moyens de contrôle associés dits moyens d'entrée de données et aux dits moyens d'isolation logique (145-1 à 145-11), de telle sorte que l'utilisateur peut copier le contenu de l'un desdits multiples sous-systèmes de mémorisation dans ledit sous-systeme de memorisation additionnel. 5 Le système décrit dans l'une des revendications 1 à 4, comprenant en outre des moyens d'isolation électrique (310-1 à 310-11) associés à chacun desdits multiples sous-systèmes de mémorisation. Le système décrit dans la revendication 5, comprenant outre des moyens de contrôle associés aux dits moyens d'isolation électrique (310-1 à 310-11), de telle sorte que l'utilisateur dudit système peut isoler électriquement au moins un desdits multiples sous-systèmes de mémorisation. Le système décrit dans la revendication 5, comprenant outre des moyens d'information associés aux dits moyens décodage (160), des premiers moyens de contrôle associés dits moyens d'isolation logique (145-1 à 145-11) et aux dits moyens d'isolation électrique (310-1 à 310-10) et des seconds moyens de contrôle associés aux dits moyens d'entrée de données de telle sorte que le contenu d'un desdits multiples sous-systèmes de mémorisation dans lequel une défaillance matérielle a été détectée automatiquement corrigé et copié dans ledit sous-système de mémorisation additionnel ledit sous-système de mémorisation défaillant étant automatiquement isolé et l'utilisateur dudit système étant informé de la défaillance et de 'isolation dudit sous-système de mémorisation. 8. Le système décrit dans la revendication 7, le contenu d'un sous-système de mémorisation défaillant étant automatiquement corrigé et copié dans ledit système de mémorisation additionnel lorsque ledit système conçu pour accéder à une mémoire n'est pas utilisé. 9. Le système décrit dans la revendication 7, une partie du contenu d'un sous-système de mémorisation défaillant étant automatiquement corrigée et copiée dans ledit système de mémorisation additionnel lorsque ledit système conçu pour accéder à une mémoire n'est pas utilisé. 10. Le système décrit dans l'une des revendications 1 à 9, lesdits moyens de codage (150) et lesdits moyens de décodage (160) utilisant l'algorithme 8-bits Block Error Coding. 11. Le système décrit dans l'une des revendications 1 à 10, chacun desdits multiples sous-systèmes de mémorisation étant un Dual In-line Memory Module standard. 12. Une méthode pour corriger et copier le contenu de l'un des multiples sous-systèmes de mémorisation, représentant des éléments unitaires de mots, dans un sous-système de mémorisation additionnel du système selon l'une des revendications 1 à 11, comprenant les étapes suivantes a. mise à zéro d'un indice d'adresse et activation des sous-systèmes de mémorisation contenant les éléments unitaires desdits mots (610), b. desactivation dudit sous-système de mémorisation additionnel, activation dudit un desdits multiples sous systèmes de mémorisation, lecture du mot situé à l'emplacement défini par ledit indice d'adresse et, si une erreur est détectée, correction dudit mot à l'aide desdits moyens de décodage (620), c. désactivation dudit un desdits multiples sous-systèmes de mémorisation, activation dudit sous-système de mémorisation additionnel et écriture de l'élément unitaire contenu dans ledit un desdits multiples sous-systèmes de mémorisation, corrigé si nécessaire, dans ledit sous-système de mémorisation additionnel à l'emplacement défini par ledit indice d'adresse (630), d. augmentation dudit indice adresse d'une unité (640), e. comparaison dudit indice d'adresse avec la valeur maximum qu'il peut atteindre, si ledit indice d'adresse n'a pas atteint ladite valeur maximum, répétition trois dernières étapes et, si ledit indice d'adresse atteint ladite valeur maximum, fin du processus (650). 13. La méthode décrite dans la revendication 12 qui automatiquement exécuté après qu'une défaillance matérielle ait été détectée, ledit un desdits multiples sous-systèmes de mémorisation étant celui dans lequel la défaillance matérielle a été détectée. 14. La méthode décrite dans la revendication 13, comprenant en outre l'étape d'information de l'utilisateur qu'une défaillance matérielle a été détectée et que le contenu dudit un desdits multiples sous-systèmes de mémorisation a été restauré dans ledit sous-système de mémorisation additionnel. 15. La methode décrite dans la revendication 13, comprenant en outre étapes suivantes - isolation électrique dudit un desdits multiples sous-systemes de mémorisation et - information de l'utilisateur qu'une défaillance matérielle a été détectée, que le contenu dudit un desdits multiples sous-systèmes de mémorisation a été restauré dans ledit sous-système de mémorisation additionnel et que ledit desdits multiples sous-systèmes de mémorisation a été isolé électriquement. 16. Une méthode pour corriger et copier le contenu d'un sous-systeme de mémorisation additionnel, représentant des éléments unitaires de mots, dans l'un des multiples sous-systèmes de mémorisation selon l'une des revendications 1 à 11 , comprenant les étapes suivantes a. mise à zéro d'un indice d'adresse et activation sous-systèmes de mémorisation contenant les éléments unitaires desdits mots, b. désactivation dudit un desdits multiples sous-systèmes de mémorisation, activation dudit sous-système mémorisation additionnel, lecture du mot situé l'emplacement défini par ledit indice d'adresse et, si une erreur détectée, correction dudit mot à l'aide desdits moyens de décodage, c. désactivation dudit sous-système de mémorisation additionnel, activation dudit un desdits multiples sous-systèmes de mémorisation et écriture de l'élément unitaire contenu dans ledit sous-système de mémorisation additionnel, corrigé si nécessaire, dans ledit un desdits sous-systèmes de mémorisation à 1 emplacement défini par ledit indice d'adresse, d. augmentation dudit indice d'adresse d'une unité, et e. comparaison dudit indice d'adresse avec la valeur maximum qu'il peut atteindre, si ledit indice d'adresse n'a pas atteint ladite valeur maximum, répétition des trois dernières étapes et, si ledit indice d'adresse a atteint ladite valeur maximum, fin processus.