FR 2843208 A1 20040206 FR 0209762 A 20020731 DISPOSITIF DE RECONFIGURATION D'UN ENSEMBLE MEMOIRE PRESENTANT DES DEFAUTS La présente invention concerne un dispositif permettant de reconfigurer un ensemble de W modules mémoire associés à k modules de remplacement ou modules redondants. La demanderesse a décrit dans la demande de brevet PCT/FR02/00523 des dispositifs de reconfiguration (de reroutage) automatique entre des bornes d'accès et des blocs (ou modules) mémoire non en défaut, c'est-à- dire que les blocs mémoire en défaut sont remplacés par d'autres blocs choisis selon le cas parmi les voisins du bloc défaillant (cas de la figure 1A), ou directement parmi des blocs redondants (cas de la figure 1B). En pratique, il s'agira de blocs d'une mémoire dont chacun fournit un bit de données d'un mot de 16, 32 ou 64 bits. Dans le cas d'une mémoire à mots de 32 bits, il faudra par exemple rajouter 8 blocs redondants. La figure LA illustre de façon très simplifiée une mémoire ayant des mots de N (quatre) bits. Chacun des bits des différents mots de la mémoire est stocké dans un module de 2m cellules (o m est le nombre de bits d'adresse de chaque module de la mémoire). On a ainsi W (quatre) modules de base de cellules mémoire Uo à U3 et k (trois) modules de remplacement U4 à U6. Dans cet exemple le nombre des bits d'adresse de chaque module est égal au nombre des bits d'adresse de la mémoire et W=N, car le module de la mémoire considéré ici correspond au bloc qui comporte toutes les cellules générant un bit de données. Pour réaliser un remplacement, au lieu de connecter les bornes d'entrée/sortie de données do, dl, d2, d3 directement aux modules mémoire U0, U1, U2, U3, on prévoit de relier ces bornes aux modules mémoire par l'intermédiaire de multiplexeurs MUX0, MUX1, MUX2, MUX3, respectivement commandés par les sorties d'un circuit logique de reconfiguration RFL associé à W+k=N+k bascules Fo à FN+k.1 (F0 à F6) dans lesquelles, au cours d'une phase de test préalable, on a indiqué l'état bon ou en défaut du module correspondant. Dans le cas o il y a k modules de remplacement, chaque multiplexeur aura k+l sorties. On notera que ce multiplexeur doit être bidirectionnel pour pouvoir connecter les bornes des données aux blocs mémoire pendant la lecture et l'écriture, ou alors on utilisera deux multiplexeurs, un pour la lecture et un pour l'écriture. Dans le mode de réalisation de la figure LA, on propose de remplacer chaque module mémoire défaillant par son voisin non défaillant le plus proche. On réalise une substitution "de proche en proche". Chaque multiplexeur est susceptible d'être relié au module du même rang et aux trois modules de rang immédiatement supérieur. Dans le mode de réalisation de la figure lB, tout module en défaut est remplacé non pas par l'un de ses voisins non défaillant mais par l'un des modules de remplacement. On réalise une substitution "distante". Chaque multiplexeur comprend une sortie vers le module correspondant et trois sorties vers les modules U4 à U6. Pour déterminer vers quel module le reroutage doit être effectué, il faut tenir compte de l'état des modules déjà examinés, par exemple ceux situés à droite (ou à gauche) d'un module considéré, et de l'état des modules de remplacement possibles. La demande de brevet PCT/FR02/00523 décrit divers moyens pour réaliser ce reroutage de façon automatique une fois que les modules défaillants ont été identifiés lors du test. La figure 2 illustre de façon logique et simplifiée le système des figures lA et 1B. Les entrées/sorties d'une mémoire comprenant W+k=N+k modules (UO à UN+kî1) sont associées à W=N multiplexeurs de 1 parmi k+1 (MUXO à MUXN-1) liés à N bornes d'entrée/sortie (I/O). Chaque multiplexeur reçoit k+1 signaux de commande à partir d'un circuit logique de reconfiguration RFL couplé à W+k=N+k cellules de mémorisation d'emplacement de défauts FLSCO à FLSCN+k-1Le processus de réparation décrit ci-dessus peut être qualifié de processus statique. Une mémoire étant divisée en un certain nombre de blocs dont chacun fournit un bit de données, on prévoit un certain nombre de blocs redondants destinés à remplacer des blocs en défaut de la mémoire. Une fois la mémoire et les blocs de remplacement testés, la reconfiguration des sorties entre les blocs de base (ou blocs réguliers) et les blocs de remplacement est faite (ou programmée) de façon définitive. Dans une mémoire à mots de 32 bits, afin de pouvoir réparer 8 fautes reparties dans 8 blocs, on doit prévoir 8 blocs redondants. Alors, la surface occupée par les blocs de remplacement est égale au quart de la surface des blocs de base. Un objet de la présente invention est de réduire la surface occupée par les blocs redondants. Pour cela, la présente invention prévoit un mode de réparation dynamique qui permet de réduire le nombre de blocs de remplacement et/ou leurs dimensions. Plus particulièrement, l'espace d'adresse d'une mémoire sera divisé en sous-ensembles d'espaces d'adresse; les tests de fautes et les modes de réparation seront effectués spécifiquement pour chaque sous-ensemble d'adresses, ce qui permet d'utiliser de même modules de remplacement pour réparer des fautes existant dans des blocs de base distincts. Pour atteindre ces objets, la présente invention prévoit un procédé de réparation des fautes dans un circuit composé de plusieurs modules et comportant des moyens de mémorisation pour mémoriser les emplacements des fautes, des moyens de connexion/déconnexion permettant de déconnecter du reste du système les modules défaillants et de connecter à leur place des modules non-défaillants, et des moyens de production de signaux de commande des moyens de connexion/déconnexion, réagissant au contenu des moyens de mémorisation, la valeur des signaux de commande déterminant les modules qui seront déconnectés et les modules qui seront connectés à leur place. Selon ce procédé chaque module est partagé en plusieurs parties, pendant une phase de test, des tests de fautes sont effectués pour les différents modules, et les résultats de test des différentes parties des modules sont mémorisés dans les moyens de mémorisation, et pendant une phase d'utilisation visant à l'utilisation de parties données de modules, lesdits signaux de commande sont déterminés par le contenu des moyens de mémorisation correspon15 dant à ces parties de modules. Selon un mode de réalisation de la présente invention, le circuit est une mémoire. Selon un mode de réalisation de la présente invention, chaque module contient au maximum 2m éléments sélec20 tionnés par m bits d'adresse, chaque module est partagé en plusieurs parties contenant chacune l'ensemble des éléments du module sélectionné quand r bits d'adresse prennent une valeur donnée, et les m-r autres bits d'adresse prennent l'ensemble des valeurs possibles, les résultats des tests de fautes des différentes parties de chaque module sont mémorisés dans des moyens de mémorisation distincts, sélectionnés par la valeur courante des r bits d'adresse, et pendant une phase d'utilisation, lesdits signaux de commande sont déterminés par le contenu des moyens de mémorisation distincts, sélectionnés par la valeur courante des r bits d'adresse. Selon un mode de réalisation de la présente invention, appliqué à une mémoire à W modules de base et k modules redondants, chaque module de base comporte au maximum S=2s portions identiques, sélectionnées par s bits d'adresse, z modules redondants (zÄO, k-z>0), comportent chacun le même nombre des portions, de même taille, que les modules de base, sélectionnées par s bits d'adresse, k-z modules redondants comportent chacun au maximum T=2t portions de même taille que les modules de base, sélectionnées par t bits d'adresse qui constituent un sous-ensemble des s bits d'adresse, les résultats des tests des fautes de chaque partie des k- z modules redondants sont stockés dans au maximum P=2P ensembles distincts de moyens de mémorisation, sélectionnés par p bits d'adresse qui constituent un sous-ensemble ou surensemble des t bits d'adresse, avec p=t+c, c étant un entier négatif, positif ou nul, tel que pÄO, les résultats des tests des fautes de chaque partie des modules de base et des z modules redondants sont stockés dans au maximum R=2r ensembles distincts de moyens de mémorisation, sélectionnés pendant la phase de test par r bits d'adresse qui constituent un sur-ensemble ou sous- ensemble des s bits d'adresse, avec r=s+c, et lesdits signaux de commande sont fonction des p bits d'adresse et de au maximum P=2P groupes de signaux de commande intermédiaires, chaque groupe des signaux de commande intermé25 diaires étant fonction: - du contenu de l'ensemble des moyens de mémorisation affectant les k-z modules redondants, sélectionné pendant la phase de test par une valeur des p bits d'adresse, - de au maximum U=2r-P ensembles de moyens de mémorisation d'emplacement des fautes affectant les modules de base et les z modules redondants, sélectionnés pendant la phase de test par la même valeur des p bits d'adresse, et - des u parmi les r bits d'adresse autres que les p bits d'adresse (u=r-p). Selon un mode de réalisation de la présente invention, appliqué à une mémoire à W modules de base et k modules redondants, chaque module de base comporte un ensemble de cellules mémoire connectées, en l'absence de fautes, sur le même bit de données, et chaque module redondant comporte le même nombre de cellules qu'un module de base. Selon un mode de réalisation de la présente invention, appliqué à une mémoire à W modules de base et k modules redondants, chaque module de base comporte un ensemble de cellules mémoire connectées, en absence de fautes, au même bit de données. Selon un mode de réalisation de la présente invention, appliqué à une mémoire à W modules de base et k modules redondants, les modules redondants sont sélectionnés par k signaux de sélection/désélection, et les moyens de commande de connexion/ déconnexion sont commandés par k signaux de commande et génèrent les k signaux de sélection/désélection des modules redondants et des signaux de sélection/désélection des modules réguliers. Selon un mode de réalisation de la présente invention, les moyens de mémorisation consistent en une mémoire CAM comportant des groupes de k mots à w bits, pendant la phase de test d, la valeur de r bits d'adresse sélectionne un groupe de k mots, et à chaque détection de faute la valeur des w bits d'adresse est stockée dans un mot du groupe sélectionné, pendant l'utilisation de la mémoire, la valeur des r bits d'adresse sélectionne un groupe de k mots, la valeur courante des w bits d'adresse est comparée avec le contenu des mots de la CAM pour activer un signal d'accord pour chaque mot qui contient la valeur courante des w bits d'adresse, les signaux de commande sont fonction des signaux d'accord du groupe de mots de la mémoire CAM sélectionné par la valeur courante des r bits d'adresse. Selon un mode de réalisation de la présente invention, appliqué à une mémoire à W modules de base et k modules redondants, les modules de base sont sélectionnés par W signaux de sélection, et les modules redondants sont sélectionnés par k signaux de sélection, les éléments de chaque module de base sont des mots de mémoire sélectionnés par m bits d'adresse, les éléments de chaque module redondant sont des mots de mémoire sélectionnés par m-c bits d'adresse, les moyens de connexion/déconnexion reçoivent k signaux de commande et W signaux générés par un circuit qui décode w bits d'adresse, et génèrent les W signaux de sélection des modules de base et les k signaux de sélection des modules redondants les moyens de mémorisation consistent en une mémoire CAM comportant plusieurs groupes de k mots à w+r bits, pendant la phase de test, la valeur courante des w+r bits d'adresse est stockée dans un mot de la CAM à chaque détection de faute, pendant le fonctionnement de la mémoire, la valeur courante des w+r bits d'adresse est comparée au contenu de tous les mots de la CAM pour activer un signal d'accord pour chaque mot qui contient la valeur des w+r bits d'adresse, les signaux de commande sont fonction des signaux d'accord de la CAM, et les modules redondants sont adressés par m-r bits d'adresse de base de la RAM et par r-c bits générés à partir des bits d'accord de la CAM. Selon un mode de réalisation de la présente invention, les S=2s portions des modules de base et les T=2t portions des modules redondants sont des colonnes sélectionnées respectivement par s et t bits d'adresse, p = 0, P = 1, les signaux de commande, déterminant la connexion des modules de base sur les bits des données, sont fonction des r bits d'adresse, du contenu de l'ensemble des moyens de mémorisation d'emplacements des fautes dans les modules redondants, et du contenu des U=R=2r ensembles de moyens de mémorisation d'emplacements des fautes dans les modules de base, la connexion de chaque bloc de base sur le bit de données correspondant est établie à chaque opération d'écriture, les signaux de commande, déterminant la connexion des blocs de remplacement sur les bits des données, sont fonction du contenu de l'ensemble des moyens de mémorisation d'emplacements des fautes dans les modules redondants, et du contenu des U=R=2r ensembles de moyens de mémorisation d'emplacements des fautes dans les modules de base, et la connexion des blocs de remplacement aux bits de données est validée par un multiplexeur commandé par des signaux qui sont fonction du contenu de l'ensemble des moyens de mémorisation d'emplacements des fautes dans les modules redondants, et du contenu des U=R=2r ensembles de moyens de mémorisation d'emplacements des fautes dans les modules de base. Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles: les figures lA et 1B représentent des exemples de reconfiguration statique de blocs mémoire selon l'art antérieur; la figure 2 représente de façon logique et simplifiée une architecture de reconfiguration statique selon l'art antérieur; la figure 3 représente une variante d'un premier mode de réalisation de la présente invention; la figure 4 représente une variante d'un premier mode de réalisation de la présente invention; la figure 5 représente un mode de mise en mémoire de fautes selon la présente invention; la figure 6 représente une variante d'un premier mode de réalisation de la présente invention; les figures 7A et 7B représentent une variante d'un deuxième mode de réalisation de la présente invention; la figure 8 représente une variante du mode de mise en mémoire de fautes; la figure 9 représente une variante du deuxième mode de réalisation de la présente invention; la figure 10 représente une variante du deuxième mode de réalisation de la présente invention; les figures 11 et 12 illustrent des modes de réalisation de stockage d'erreurs selon la présente invention; les figures 13 et 14 représentent des circuits de commande de reconfiguration; les figures 15, 16 et 17 illustrent une variante du deuxième mode de réalisation de la présente invention évitant l'augmentation des délais; la figure 18 représente une variante du mode de réalisation d'une mémoire comportant un module redondant; la figure 19 représente un autre exemple de reconfiguration statique de blocs mémoire; la figure 20 représente une variante d'un troisième mode de réalisation de la présente invention utilisant des mémoires de type à adressage par le contenu (CAM); et la figure 21 représente une variante du troisième mode de réalisation de la présente invention. Premier mode de réalisation de la présente invention La figure 3 illustre un mode de réalisation de la présente invention sous une forme logique et simplifiée dans le même type de représentation que celle qui a été faite pour l'art antérieur en figure 2. On trouve les mêmes blocs mémoire de base et de remplacement UO-UN+k-1, les mêmes multiplexeurs MUXO-MUXN-l et une logique de reconfiguration RFL. La différence est que, si la mémoire est adressée par des bits d'adresse Ai à Am, on sépare des bits d'adresse Ai à Ar, r de blocs redondants associés aux blocs mémoire de base. Etant donné que, comme on l'a vu ci-dessus, les corrections dépendent des divers sous-ensembles d'adresse, on parlera ici d'un système de réparation dynamique ou de reconfiguration dynamique de blocs mémoire ou de blocs redondants associés, car une borne des données ne sera pas toujours connectée au même bloc de base ou de remplacement, mais elle pourra changer de bloc selon la valeur des bits Ai à Ar. Ainsi, de mêmes blocs de remplacement serviront plusieurs fois de diverses manières selon l'adresse visée dans les blocs mémoire de base, permettant ainsi de réparer plusieurs blocs défaillants en utilisant le même bloc de remplacement. Le nombre de blocs de remplacement est donc réduit (ou le nombre de réparations possibles est augmenté). Par rapport au mode de réalisation de la figure 2, le mode de réalisation de la figure 3 augmente la surface occupée par les circuits de reconfiguration puisque l'on multiplie le nombre de cellules de mémorisation d'emplacement de défaut (FLSC) et que l'on rajoute un multiplexeur (MUX/FLSC). Néanmoins, l'homme du métier notera que, pour de grandes mémoires, cette surface ajoutée est faible par rapport à la surface économisée par la diminution du nombre de blocs de remplacement. La figure 4 représente une variante de réalisation dans laquelle, au lieu de prévoir un circuit logique de reconfiguration global RFL, on prévoit, pour chaque sous-ensemble d'adresses, un circuit de reconfiguration spécifique RFLi (RFLO à RFLR_1). Un multiplexeur MUX/RFL sélectionne l'un ou l'autre des circuits logiques RFLO à RFLR-1 dont chacun est associé à l'un de R ensembles de N+k cellules de mémorisation d'emplacement de défaut FLSCO à FLSCRî1. La figure 5 illustre un mécanisme de mémorisation d'information d'emplacements de défauts. La mémorisation est faite pour chaque sousensemble d'adresse 0 à R-1. L'indication des défauts peut être fournie dans chaque cas par un circuit de test incorporé, couramment désigné par l'abréviation BIST (Built-In Self-Test) qui, par l'intermédiaire d'un multiplexeur MUX/BIST, envoie les informations de défaut vers les cellules FLSCi adaptées en fonction d'un adressage par le sous-ensemble d'adresses convenable Ai-Ar. Dans les figures lA, lB, 2, 3, 4, et dans les figures 7A, 7B, 9, 10 ciaprès, les commandes des multiplexeurs liés aux N bornes d'entrées/sorties sont codées dans le code 1-parmi-k+l (c'est-à-dire que parmi les k+l signaux de commande d'un multiplexeur, un seul signal prend la valeur 1). D'autre part, les r commandes (Ai-Ar) des multiplexeurs MUX/FLSC, MUX/RFL et MUX/BIST dans les figures 3, 4, 5, 8, 9, sont codés en code binaire. Bien sr on peut utiliser l'un ou l'autre type de multiplexeur en adaptant les signaux de commande (un code du type 1-parmi- n peut facilement être transformé en code binaire, et vice-versa). Dans ce qui précède, on a considéré la réparation des blocs de la mémoire qui contiennent l'ensemble des cellules stockant un seul bit des données. On peut aussi considérer des blocs stockant un sous-ensemble des mots de la mémoire. On peut employer la même technique de réparation statique pour réparer ce type des blocs, comme décrit dans la demande de brevet PCT sub-mentionnée. On considère une mémoire partagée en W=2w blocs, tels que chaque bloc comporte 2m mots. Ces blocs sont sélectionnés en décodant w bits d'adresse. Ce décodage va fournir 2w signaux de sélection (Selectl, Select2,... Select2W) qui sont utilisés pour activer l'accès à l'un des ces blocs. Ainsi, à chaque cycle, l'un de ces signaux est activé selon la valeur des w bits d'adresse. L'opération courante (écriture ou lecture) s'effectue alors sur le bloc déterminé par le signal de sélection actif. Les m bits d'adresse restants sont utilisés pour adresser un mot à l'intérieur du bloc sélectionné. Les N entrées/sorties de données de chaque bloc sont connectées à un bus de données à N bits. La figure 6 présente une réalisation de la réparation statique pour cette architecture. La réparation s'effectue en utilisant 2w multiplexeurs, qui connectent les 2w signaux de sélection Selectl, Select2,... Select2W sur les signaux de sélection des 2w = 4 blocs de base (blocs UO, Ul, U2 et U3) et des k = 3 blocs de remplacement (blocs U4, U5 et U6). Ces multiplexeurs sont contrôlés par des signaux de commande générés par un circuit logique de reconfiguration (RFL). Les circuits utilisés pour cette réparation (les multiplexeurs, le circuit logique de reconfiguration et les cellules de mémorisation de l'emplacement des défauts FLSC) sont identiques au cas de réparation statique considérant des blocs de mémoire comportant les cellules qui stockent un bit de données (figures lA, 1B et 2). Les circuits utilisés pour la réparation dynamique de cette architecture seront aussi identiques aux circuits utilisés dans le cas de réparation dynamique considérant des blocs de mémoire comportant les cellules qui stockent un bit des données (figures 3, 4 et 5). En fait, de façon similaire à la figure 5, on utilise r bits d'adresse pour stocker pendant la phase de test les informations d'emplacement de fautes dans R=2r ensembles de cellules FLSC. Pendant le fonctionnement, on utilise r bits d'adresse pour sélectionner l'ensemble des cellules FLSC qui sera connecté aux entrées de la logique de reconfiguration RFL, comme dans la figure 3, ou pour sélectionner le bloc de la logique de reconfiguration qui fournira les signaux de commande des multiplexeurs de reconfiguration (MUXO, MUX1, MUX2, MUX3) de la figure 6, comme dans la figure 4. La fonction de la logique de reconfiguration RFL est aussi inchangée. Deuxième mode de réalisation de la présente invention Utilisation de blocs de remplacement à colonne unique Dans le premier mode de réalisation, si on appelle Nd le nombre de cellules connectées à une entrée/sortie, dl à dN, on utilise k blocs redondants constitués de Nd cellules chacun. On a vu que si les défauts étaient régulièrement répartis, pour réparer v défauts, on pouvait utiliser k=v/R blocs de remplacement de Nd cellules chacun, mais qu'en fait ce nombre devait être augmenté pour tenir compte de la distribution irrégulière des défauts. Cet inconvénient peut être évité par le dispositif illustré en figure 7A. Dans ce deuxième mode de réalisation de l'invention, au lieu d'utiliser des blocs de remplacement qui contiennent autant de cellules que les blocs connectés à une entrée/sortie (Nd cellules), on réalise chacun de ces blocs sous forme d'un ensemble réduit de cellules par exemple une colonne unique. Ainsi, pour une mémoire utilisant un multiplexage d'une colonne parmi 32, chaque bloc de remplacement contiendra Nd/32 cellules. On peut ainsi utiliser un processus de reconfiguration dans lequel les bits d'adresse utilisés pour commander les multiplexeurs MUX/FLSC ou MUX/RFL des figures 3 et 4 sont les bits d'adresse de colonne. On a R=32 et la dimension du module réparable est de Nd/32 cellules (1 colonne). On garantit ainsi la réparation de toute mémoire comprenant k défauts quelle que soit la distribution de ces défauts dans la mémoire. Alors, comme l'illustre la figure 8, plutôt que d'utiliser R ensembles de mémorisation d'emplacements de défaut FLSCO à FLSCRî1 contenant chacun N+ k cellules, on pourra uti10 liser R ensembles de bascules FLSC contenant chacun N cellules pour mémoriser la position des blocs de base défaillants et un ensemble supplémentaire (SFLSC) comprenant k bascules pour mémoriser les positions défaillantes parmi les k colonnes de remplacement. La programmation des diverses bascules se fait alors de la façon illustrée en figure 8 plutôt que comme cela est illustré en figure 5. Ceci est d au fait que, comme chacun des blocs de remplacement comprend une seule colonne, il suffit d'attribuer une bascule de signalisation de défaut à chaque bloc de remplacement. La figure 9 illustre comment se réalise la reconfiguration pendant le fonctionnement du circuit. Le processus de reconfiguration est similaire à celui de la figure 4. Toutefois en figure 4, les blocs du circuit logique de reconfiguration (blocs RFL) ont des entrées qui proviennent d'ensembles diffé25 rents de bascules FLSC. Par contre, en figure 9, les blocs du circuit logique de reconfiguration partagent certaines entrées, c'est-à-dire les sorties des k bascules SFLSC. Egalement, en figure 4 les blocs du circuit logique de reconfiguration n'échangent aucune information (ils réalisent des fonctions indépendantes). Par contre, en figure 9 les circuits de reconfiguration RFL doivent réaliser des fonctions interdépendantes et échanger des informations. On décrira ci-après ces fonctions interdépendantes a) dans le cas d'une reconfiguration de proche en proche, b) dans le cas d'une reconfiguration distante. a) Reconfiquration de proche en proche Pour simplifier l'analyse on introduira des variables intermédiaires. Ensuite, grâce à ces variables on pourra utiliser les fonctions de reconfiguration obtenues pour le processus de reconfiguration local statique décrit dans la demande de brevet PCT FR0200523. On pose Fi comme étant l'état de la bascule de la position de remplacement i (N Fibq est utilisée seulement par le circuit logique de reconfiguration RFLq. Pour les positions i qui disposent d'un ensemble complet de colonnes (lespositions régulières), on a Fibq=Fiq, ips0,... N-1} (1), o Fiq est la valeur de la bascule FLSC de position i du groupe q. Pour les positions qui disposent d'une seule colonne (c'est-à-dire les positions de remplacement) Fibq doit être défini. Cette définition dépend de l'ordre que l'on utilise pour allouer des colonnes de remplacement pour remplacer d'autres colonnes. On peut par exemple considérer l'ordre d'allocation suivant: entre deux colonnes quelconques de positions différentes, on alloue la première colonne de remplacement disponible à la colonne de position inférieure. Entre deux colonnes quelconques de mêmes positions, on alloue la première colonne de remplacement disponible à la colonne de rang le plus faible. Avec cette convention, on peut déterminer les valeurs des variables Fibq de la façon suivante. La valeur 1 de la variable Fibq indique que la position de remplacement i n'est pas dispo- nible pour réparer la colonne q de position b, pour l'une des raisons suivantes: la position i est en défaut ou bien la position i doit être allouée pour remplacer une colonne de position inférieure à b sauf les colonnes de rang q, ou pour remplacer une colonne de position b et de rang inférieur à q. Dans tous les autres cas, la valeur de Fibq est égale à 0. Avec cette définition de F-bq, on n'a pas à considérer l'occupation de la position i par une colonne de rang q. Ceci est d au fait que les colonnes de même rang correspondent au même ensemble de bascules FLSC. En figure 4, ces bascules sont traitées par le même circuit logique de reconfiguration RFL qui tient compte de l'occupation d'une position de remplacement par les autres colonnes de même rang. Elles seront donc prises en compte par les nouvelles équations obtenues en remplaçant les variables Fi par les variables Fibq dans les équations des circuits RFL de la figure 4. On obtient donc l'équation suivante pour les variables Fbq des positions i de remplacement, pour ieIN, 2,... N+k-1}, i-b E Xj représente la somme logique des termes Xj, pour jr={1,... nj. On n'a pas besoin de définir Fib,q pour i-b>q, car, pour ces valeurs de i et b, les variables Fibq ne seront pas utilisées dans les équations des circuits RFL (une position i ne peut pas remplacer une position distante de plus de k positions). Bien sr, si on utilise un autre ordre pour allouer les colonnes de remplacement pendant la reconfiguration, on obtiendra une autre équation pour F bq. Par exemple, si entre deux colonnes de rangs différents on alloue la première colonne de remplacement disponible à la colonne de rang inférieur, et entre deux colonnes de même rang et de n'importe quelle position, on alloue la première colonne de remplacement disponible à la colonne de position inférieure, alors la variable Fibq sera égale à 1 si la position de remplacement i n'est pas dispo5 nible pour réparer la colonne q de la position b, pour l'une des raisons suivantes: la position i est en défaut ou bien la position i est déjà occupée par une colonne de rang inférieur à q et de position quelconque. Le cas des colonnes de même rang et de positions différentes n'influe pas sur Fibq car ces colonnes sont traitées par le même circuit RFL. Ainsi, pour les positions i de remplacement et pour i-b indiquent le OU logique et les points le ET logique. Les variables Mji1q pour tout i et j sont les sorties du bloc RFLq de la figure 4. Les équations (1), (2/2') et (3) déterminent les fonctions de reconfiguration pour le processus de la figure 9. Ces équations peuvent facilement s'étendre au cas o certains blocs de remplacement comprennent un ensemble complet de colonnes et/ou certains blocs de remplacement contiennent une colonne unique. En ce cas, l'équation (1) s'appliquera aux positions i correspondant aux blocs de base ainsi qu'aux blocs de remplacement comprenant un ensemble complet de colonnes, tandis que l'équation (2/2') s'appliquera aux blocs de remplacement comprenant une seule colonne. Les équations (3) restent inchangées. On notera que les colonnes des blocs de remplacement n'utilisent pas de décodeur de colonne, car ces blocs ne comportent qu'une seule colonne. Ainsi, ces colonnes ne sont pas isolées des amplificateurs d'écriture et on pourra y accéder à chaque cycle d'écriture. Pour éviter de détruire le contenu d'une cellule de colonne de remplacement à chaque cycle d'écri20 ture, on utilise l'une des deux solutions suivantes: - pour chaque colonne de remplacement SC, on combine tous les signaux MjYx qui permettent la connexion de la colonne SC à l'une quelconque des entrées/sorties de données, pour produire un signal qui est actif chaque fois que l'un des signaux MjYx est actif (par exemple, en utilisant une porte OU pour combiner ces signaux, si la valeur active est la valeur 1); alors, on utilise le signal résultant pour activer l'amplificateur d'écriture seulement quand la colonne SC est connectée à une entrée de données; ou - pour les colonnes de remplacement, on place les amplificateurs d'écriture sur les branches des multiplexeurs de reconfiguration connectant une entrée de données à une colonne de remplacement, mais du côté des données, comme montré dans la figure 7B pour le cas du multiplexeur de la borne de données d3. Dans cette figure, l'amplificateur d'écriture est placé sur les branches connectant d3 aux colonnes de remplacement U4, U5 et U6, et du côté de cette borne; ainsi, pendant une opération d'écriture une colonne de remplacement sera attaquée par un amplificateur d'écriture seulement si elle est connectée à une entrée de données. Les amplificateurs de lecture des colonnes de remplacement peuvent également être activés sélectivement de façon similaire aux amplificateurs d'écriture. Ce choix peut être utilisé pour réduire le nombre des amplificateurs activés à chaque lecture afin de réduire la consommation. Mais c'est un choix de convenance et pas une nécessité comme c'était le cas pour les amplificateurs d'écriture. b) Reconfiquration distante La reconfiguration dynamique distante utilisant des éléments de remplacement à colonne unique est illustrée en figure 10. Chacun des blocs de base Uo, U1,... UN-1 contient R colonnes. Ainsi les blocs de base comprennent un total de NxR colonnes. Chacune de ces colonnes peut être remplacée par l'une quelconque des colonnes de remplacement. Chaque bloc de rempla20 cement comprend une colonne unique. Lors d'une opération exempte de défauts, chaque valeur U des bits d'adresse de colonnes Al-Ar sélectionne une colonne dans chacun des blocs de base. Toutes ces colonnes forment le groupe de colonnes de rang U (ou groupe U). Ainsi, on a R groupes de colonnes: le groupe 0, le groupe 1,... le groupe R-1. Les fonctions de reconfiguration dépendront de l'ordre selon lequel on affecte les colonnes de remplacement aux colonnes régulières en défaut. Par exemple, on peut d'abord affecter des colonnes de remplacement aux colonnes en défaut du groupe 0. Ensuite, on affecte des colonnes de remplacement non utilisées aux colonnes en défaut du groupe 1, etc. Une autre possibilité est d'affecter d'abord les colonnes de remplacement aux colonnes en défaut du bloc RUO, on affecte ensuite des colonnes de remplacement non utilisées aux colonnes en défaut du bloc RU,, etc. Les processus de réparation des figures 8 et 9 s'appliquent aussi bien à la réparation de proche en proche qu'à la réparation distante. La différence entre ces deux cas réside dans la mise en oeuvre des fonctions RFL. La figure 10 montre le cas de la réparation distante utilisant N=4 blocs de base, RUO, RU1, RU2, et RU3, comportant plusieurs colonnes, ainsi que k=2 blocs de remplacement SU1 et SU2, comportant une colonne unique. Comme dans le cas d'une réparation de proche en proche, on déterminera les interactions illustrées en figure 9 qui permettent d'utiliser des équations obtenues à partir du processus de réparation utilisant des blocs de remplacement comportant un ensemble complet de colonnes. Une façon simple de déterminer les fonctions de reconfiguration consiste à considérer les RxN bascules des positions régulières de la figure 8 comme un ensemble unique. On ordonne cet ensemble selon l'ordre selon lequel on veut affecter les colonnes de remplacement aux colonnes régulières en défaut. La figure 11 représente l'ordre correspondant au cas o l'on affecte d'abord des colonnes de remplacement aux colonnes en défaut de l'ensemble 0; on affecte ensuite des colonnes de remplacement non utilisées aux colonnes en défaut de l'ensemble 1, etc. Dans cette figure, on a considéré le cas de quatre blocs de base RUO, RU1, RU1, RU2 et RU3 contenant chacun deux colonnes. On a alors deux groupes de colonnes pour les blocs de base. Ainsi, on a pour ces blocs deux ensembles de bascules FLSC incluant quatre bascules chacun. On appelle RF nouvelles variables correspond à l'ordre de leurs indices. La figure 12 représente l'ordonnancement correspondant au cas o l'on affecte d'abord des colonnes de remplacement aux colonnes en défaut du bloc RUO, on affecte ensuite des colonnes de remplacement non utilisées aux colonnes en défaut du bloc Ul, etc. Une fois que la remise en ordre des nouvelles variables est réalisée, on peut considérer les nouvelles variables Fj comme les variables d'un ensemble unique utilisé dans le processus de réparation distante statique. On a NxR signaux Fj On a aussi k signaux SFq qui sont fournis par les sorties des cellules SFLC (figures 8 et 9) correspondant aux colonnes de remplacement. Alors, on utilise un bloc unique de logique de reconfiguration RFL pour la réparation statique distante. Ce bloc recevra en entrée les NxR signaux Fj et les k signaux SF Il sera réalisé par une fonction de reconfiguration statique distante comme décrite dans la demande de brevet PCT susmentionnée. Ce bloc fournira NxR ensembles de k+1 signaux chacun, correspondant aux signaux de commande des RxN multiplexeurs de type 1-parmi-k+l. Ces ensembles de signaux seront réduits en N ensembles de k+1 signaux. Ceci est effectué par un ensemble de multiplexeurs commandé par les bits d'adresse Al, A2,... Ar. La figure 13 représente cette réduction pour l'exemple de la figure 11. La figure 14 représente cette réduction pour l'exemple de figure 12. La figure 14 est plus simple car, en figure 12, un signal F d'indices successifs correspond aux colonnes de mêmes positions (FO et F1 correspondent à la première et à la seconde colonne de position 1, F2 et F3 correspondent à la première et à la seconde colonne de position 2, etc. ). Ainsi, les premier et second ensembles des signaux Mji de sortie du circuit logique de reconfiguration de la figure 12 sont combinés par le premier multiplexeur de la figure 14, pour fournir des signaux de commande de multiplexeur de la première position de mémoire. En figure 11, les signaux Fo et F4 correspondent aux colonnes de la première position de la mémoire, les signaux F1 et F5 correspondent aux colonnes de la seconde position de mémoire, les signaux F2 et F6 correspondent aux colonnes de la troisième position de la mémoire et les signaux F3 et F7 correspondent aux colonnes de la quatrième position de la mémoire. A partir de cet agencement plus complexe on obtient les connexions plus complexes de la figure 13. Réduction des délais La réparation d'une mémoire entraîne une augmentation des délais. Dans le cas de la réparation statique cette augmentation est minimale, car les signaux générés par la logique de reconfiguration sont calculés pendant la phase de réparation, et restent stables pendant le fonctionnement de la mémoire. Alors, la génération de ces signaux n'ajoute pas de délai supplémentaire pendant cette phase (voir figures lA, 1B, et 2). Par contre, dans la figure 3, on rajoute le délai de calcul des signaux de commande des multiplexeurs MUXO-MUXN-l. Ce délai est réduit dans la figure 4, dans laquelle le délai rajouté consiste uniquement en le délai du multiplexeur MUX/RFL, les sorties des différents blocs de la logique de reconfiguration (RFLO, RFL1, RFLR-1) étant calculées durant la phase de réparation. Nous trouverons des délais similaires dans le cas des figures 8 et 9. Le délai rajouté par la réparation dynamique dans les figures 3, 4, 5, 7A, 8, 9 et 10, n'a pas d'effet significatif pendant le cycle de lecture. En effet, pendant une lecture, le contenu du mot en lecture peut être transféré aux lignes de bits et amplifié par les amplificateurs de lecture, sans attendre que les signaux de commande des multiplexeurs soient prêts. Ainsi, les valeurs de ces signaux peuvent être calculées en parallèle avec ces opérations. Par contre, pendant le cycle d'écriture, la reconfiguration dynamique rajoute un délai supplémentaire. Afin d'éliminer ce délai, la génération des commandes des multiplexeurs MUXO- MUXN-l présentée en figure 9 sera modifiée selon la figure 15. Cette technique sera appliquée de préférence dans le cas de la réparation distante de la figure 10. On peut distinguer dans la figure 9 deux types de commandes. Les commandes du premier type déterminent si une borne de données di est connectée au bloc de base RUi. Les commandes du deuxième type déterminent si une borne de données di est connectée à un bloc de remplacement SUj. Pour les commandes du premier type, nous allons utiliser le signal de commande d'une écriture (par exemple le signal "write enable"), afin de connecter durant une écriture la borne di directement sur la sortie du bloc RUi en court-circuitant le multiplexeur. Cette connexion aura pour conséquence d'écrire dans les parties défaillantes du bloc RUi. Néanmoins, cette action ne produira pas d'erreur de fonctionnement si on prend soin d'écrire aussi dans les parties de rempla10 cement qui remplacent les parties défaillantes, et de connecter sur la borne di lors d'une lecture uniquement ces parties de remplacement. La génération des commandes du deuxième type est effectuée de la façon suivante. Considérons le signal de commande du multiplexeur MUXi qui détermine si la borne di doit être connectée au bloc de remplacement SUj à un instant donné. Dans la figure 9, chacun des blocs RFLO à RFLR-1 produit un signal pour commander cette connexion. Nous avons ainsi R signaux qui sont réduits à un signal unique par le multiplexeur MUX/BIST commandé par les bits d'adresse AM à Ar. Dans la figure , on réduit ces signaux en un signal unique en utilisant une porte OU. Ainsi, les commandes des multiplexeurs du deuxième type sont calculées pendant la phase de réparation, et n'introduisent pas de délai pendant la phase de fonctionnement. Néanmoins, dans ce cas, le bloc de remplacement SUj va être connecté à la borne des données di pas seulement au moment o les bits AM à Ar ont une valeur particulière mais de façon permanente. Pour éviter cette situation, on utilisera le circuit de la figure 16. Pour chaque bloc RFLq de la logique de reconfi30 guration, ce circuit utilise une porte OU pour réduire à un seul signal tous les signaux générés par ce bloc et destinés à la commande de la connexion du bloc de remplacement SUj à un bit des données quelconque. On obtient ainsi le signal SUcj. Ce signal commande à son tour un circuit qui décode la valeur binaire q sur les bits d'adresse AM à Ar (une porte ET et quelques inverseurs dans la figure 16) et génère sur sa sortie le signal SUqj. Le signal SUcj commande un multiplexeur illustré en figure 17, qui connecte le bloc de remplacement SUj aux multiplexeurs MUX0-MUXN-l* Ces circuits n'affectent pas de façon sensible le délai de la mémoire. En fait, les signaux Sj à sR-1l sont calculés pendant la phase de réparation. Ainsi leur calcul ne rajoute pas de délai pendant la phase du fonctionnement. Pour le reste, le décodeur des bits Ai à Ar de la figure 16, et le multiplexeur de la figure 17, auront un délai similaire à ceux du décodeur de colonnes et du multiplexeur de colonnes des blocs de base, qui de toute façon existent dans la mémoire. On remarque que le multiplexeur de la figure 17 peut se simplifier si on utilise une porte OU ayant en entrée les signaux SU0j à SUR-1j. La sortie de cette porte va commander un multiplexeur à une seule commande qui va relier le bloc de remplacement SUj aux multiplexeurs MUXO-MUXN-1. On peut utiliser le même processus de réparation dans le cas ou le bloc SUi est composé de plusieurs colonnes. Dans ce cas, SUj comportera un décodeur de colonnes commandé par les bits d'adresse Ar+1 à As, et un multiplexeur de colonnes commandé par les sorties de ce décodeur. Les blocs de base comporteront un décodeur de colonnes commandé par les bits AM à As (avec s=r+t) et un multiplexeur de colonnes commandé par les sorties de ce décodeur. Le multiplexeur de la figure 16 sera commandé par les bits Al à Ar. Dans ce cas, le multiplexeur de la figure 17 sera connecté en série avec le multiplexeur du bloc SUj, et rajoutera un délai supplémentaire. On peut réduire ce délai en combinant le circuit de la figure 16 avec le décodeur colonnes du bloc SUj. On obtiendra 2t signaux pour chaque signal SUqj et chaque valeur des bits Ar+1 à As. On aura au total 2t+r signaux qui vont commander le multiplexeur de colonnes du bloc de remplacement SUj. On aura ainsi un délai similaire aux blocs de base. Généralisation du deuxième mode de réalisation Blocs de remplacement constitués d'un sous-ensemble de colonnes On va considérer une reconfiguration dynamique qui décode un nombre de bits d'adresse (pour sélectionner les bascules FLSC des positions régulières), supérieur au nombre de bits d'adresse utilisés pour sélectionner les bascules FLSC des positions de remplacement. Un tel processus est intéressant car le meilleur compromis entre la taille du module réparable et le cot des circuits utilisés pour la reconfiguration peut néces10 siter d'utiliser des blocs de remplacement qui comprennent plus d'une colonne. Par exemple, dans une mémoire dans laquelle est prévu un multiplexage de colonnes de 1 parmi 16 (c'est-à-dire, utilisant des blocs de base de 16 colonnes par entrée/sortie de données), on peut utiliser des blocs de remplacement à 8 colonnes. Le décodeur de colonne pour les blocs de base utilisera quatre bits d'adresse, tandis que le décodeur de colonne pour les bits de remplacement utilisera un sous-ensemble de ces bits d'adresse (3 bits dans cet exemple). On désigne par Al, A2 Ar, les bits d'adresse utilisés par le décodeur de colonne des blocs de base et par Al, A2... Ap (p utilisés par le décodeur de colonne des blocs de remplacement. Dans ce cas, une valeur donnée des bits Al, A2... Ap sélectionnera la même colonne dans les blocs de remplacement pour toutes les valeurs des bits d'adresse Ap+l, Ap+2... Ar. Pour les k blocs de remplacement on utilisera P ensembles de bascules FLSC (P=2P). Chacun de ces ensembles est constitué de k bascules FLSC (une par bloc de remplacement). Chacun de ces ensembles est sélectionné par une valeur des bits d'adresse Al, A2... Ap. Pour les N blocs de base on utilisera R ensembles de bascules FLSC (R=2r). Chacun de ces ensembles est constitué de N bascules FLSC (une par bloc de base). Chacun de ces ensembles est sélectionné par une valeur des bits d'adresse AI, A2... Ap, Ap+l... Ar. On observe qu'une valeur donnée des bits Al, A2... Ap sélectionne un ensemble de k bascules FLSC de remplacement, et U=2r-P ensembles de N bascules FLSC de base. On note que ces bascules f orment un ensemble de bascules FLSC tel que celui utilisé dans le processus de reconfiguration dynamique (distant ou de proche en proche) utilisant k blocs de remplacement à une seule colonne, et N blocs de base à U colonnes. Ainsi, on utilisera le circuit développé pour ce processus pour produire un ensemble de signaux Mii (voir figures 8 et 9). On utilisera dans ces cas les r-p bits d'adresse pour commander le multiplexeur MUX/BIST de ces figures. En fait, ce circuit fournira les signaux Mii de commande des N multiplexeurs du type 1-parmi-k+1. Toutefois, ce circuit correspond à une valeur des signaux d'adresse Al, A2... Ap. Ainsi, on aura P tels circuits (un pour chaque valeur des bits Ai, A2... Ap) et on obtiendra P ensembles de signaux Mii. On traitera ces circuits comme étant les P blocs des circuits logiques de reconfiguration (RFL) utilisés dans les processus de reconfiguration dynamique des figures 3 et 4. Comme dans ces figures, on utilisera un ensemble de multiplexeurs commandés par les bits d'adresse Ai, A2,... Ap, pour réduire en un ensemble unique les P ensembles de signaux Mi] produits par ces P blocs. Cet ensemble de signaux Mii commandera les multiplexeurs placés sur les entrées/sorties de la mémoire pour réaliser une reconfiguration. Nous pouvons également, dans une configuration de N blocs de base à S=2s colonnes et de k blocs de remplacement à T=2t colonnes, choisir r=s-c et p=t-c, o c est un entier positif inférieur ou égal à t, et pratiquer la reconfiguration décrite précédemment en utilisant ainsi une valeur R=2r plus petite que le nombre de colonnes des blocs de base, et une valeur de P=2P plus petite que le nombre de colonnes des blocs de remplacement. Pour réparer une faute, on remplace alors une partie de la mémoire comportant 2c colonnes au lieu d'une colonne. Toutefois, ces parties restent plus petites que les blocs de base qui comportent eux 2s colonnes. Nous pouvons finalement, dans une configuration de N blocs de base à S=2s colonnes et de k blocs de remplacement à T=2t colonnes, choisir r=s+c et p=t+c (c étant un entier positif tel que s+c est inférieur ou égal au nombre m des bits d'adresse de la mémoire), et pratiquer la reconfiguration décrite précédemment en utilisant une valeur R=2r plus grande que le nombre des colonnes des blocs de base et une valeur P=2P plus grande que le nombre des colonnes des blocs de remplacement. Pour réparer une faute, on remplace alors une partie de la mémoire comportant un sous-ensemble des cellules d'une colonne, plus précisément 1/2c cellules d'une colonne. Ces différents cas de figure aboutissent à une généra10 lisation du deuxième mode de réalisation de la présente invention, qui peut utiliser toutes les valeurs de r, R, p et P telles que R=2r, P=2P, r=s+c, p=t+c, o c est un entier tel que -t décrites précédemment. Un autre cas d'utilisation du deuxième mode de réalisation concerne le cas o chaque bloc de base comporte M mots à N bits, comme en figure 6, et chaque bloc redondant comporte M mots à k bits. Ceci est illustré en figure 18, dans laquelle on utilise un seul bloc redondant. Les sorties des blocs de base sont connectées sur un bus à N bits, comme dans le cas d'une RAM sans moyens de réparation. Les sorties du bloc redondant sont connectées à un bus à k bits. On a ainsi un bus de données à N+k bits, avec N bits de base et k bits redondants. On peut alors voir les N bits de base de ce bus comme les entrées/sorties de N modules de base, et les k bits redondants de ce bus comme les entrées/sorties de k modules redondants. On a une situation similaire à celle des figures 7A et 10, o les modules redondants comportent moins de cellules que les modules de base. En fait, dans la figure 18, les cellules connectées sur chacun des k bits redondants proviennent d'un seul bloc de M mots à k bits, tandis que les cellules connectées sur chacun des N bits de base proviennent de plusieurs blocs de M mots à N bits. Ainsi, ces dernières cellules sont plus nombreuses. On utilisera alors les techniques des figures 8, 9, 11, 12, 13 et 14 pour effectuer la réparation, en remplaçant dans le contrôle des multiplexeurs MUX/BIST, et MUX/RFL les r bits d'adresse colonne Al-Ar par les bits d'adresse de sélection des blocs à mots de N bits (blocs U0, Ul, U2, et U3 en figure 18). Etant donné qu'un seul bloc à mots de k bits est utilisé pour réparer plusieurs blocs à mots de N bits, on ne pourra pas utiliser les bits d'adresse sélectionnant les blocs à mots de N bits pour isoler du bus les sorties du bloc à mots de k bits qui, pendant un cycle, ne sont pas utilisées pour remplacer des sorties d'un module à mots de N bits. Pour résoudre ce problème on utilisera l'une des techniques décrites précédemment dans ce deuxième mode de réalisation (voir par exemple figure 7B). On pourra aussi utiliser plusieurs blocs redondants à mots de k bits, et employer, pour sélectionner à chaque instant un de ces blocs, un sousensemble des bits d'adresse employés pour sélectionner les blocs à mots de N bits. On réduira en même temps le nombre des signaux de commande des multiplexeurs MUX/BIST et MUX/RFL, et le nombre des ensembles de mémorisation d'emplacement de défauts (FLSC) pour les modules de base. Bien entendu, les autres cas de généralisation du deuxième mode de réalisation, présentés ci-dessus, s'appliquent aussi ici. On pourra par ailleurs utiliser des blocs redondants à mots de k bits, tels que chaque bit comporte un sous-ensemble des colonnes utilisées par les bits des blocs à mots de N bits. Dans ce cas, on utilisera les architectures de réparation décrites dans le deuxième mode de réalisation, en utilisant, pour commander les multiplexeurs MUX/BIST et MUX/RFL, certains bits d'adresse de colonnes et certains bits d'adresse de sélection des blocs à mots de N bits. Par exemple, si on utilise un seul bloc redondant à mots de k bits, tel que chacun des k bits comporte une seule colonne, alors on utilisera l'architecture des figures 8 et 9, dans laquelle on aura 2r+w blocs FLSC et RFL, et on utilisera les r bits d'adresse des colonnes et les w bits d'adresse de sélection de bloc, pour commander les multiplexeurs MUX/RFL et MUX/BIST. Les diverses généralisations du deuxième mode de réalisations'appliquent au présent cas. Par ailleurs on pourra faire abstraction de la structure interne des parties qui génèrent les bits de base et les bits redondants, et ne considérer que les bits d'adresse utilisés par les premières et non utilisés par les deuxièmes. On utilisera alors la même architecture de réparation (figures 8 et 9), en employant ces bits d'adresse pour commander les multiplexeurs MUX/RFL et MUX/BIST. Comme susmentionné, les multiplexeurs MUX/FLSC, MUX/RFL, et MUX/BICS peuvent être contrôlés par r bits d'adresse codés en binaire (comme dans les figures 3, 4, 5, 8, 9), mais ils peuvent aussi être contrôlés par des signaux codés dans un code du type 1-parmi-n obtenus en décodant ces r bits d'adresse. Une autre technique pour contrôler ces multiplexeurs consiste à générer des signaux codés dans un code du type 1-parmi-n en utilisant une mémoire CAM à R mots de r bits. Chaque mot de la CAM possède aussi un bit de drapeau. Tous les bits (y compris le bit de drapeau) de tous les mots de la CAM sont initialisés à 0. Chaque mot possède un signal d'accord. Les signaux d'accord contrôlent le multiplexeur MUX/FLSC ou MUX/RFL des figures 3, 4, et 9, ainsi que MUX/BIST des figures 5, et 8. Nous utilisons deux mécanismes pour activer un signal d'accord. Premièrement, pendant chaque cycle de la phase de test et de la phase de fonctionnement, la valeur courante des r bits d'adresse est comparée avec le contenu des mots de la CAM. Si la comparaison réussie pour un mot dont le bit de drapeau est à 1, le signal d'accord du mot est activé. Deuxièmement, pendant la phase du test, si une faute est détectée pendant un cycle, et si aucun signal d'accord n'est activé par le premier mécanisme, on active le signal d'accord d'un mot de la CAM dont le bit de drapeau est à 0. En même temps on écrit la valeur courante des r bits d'adresse dans ce mot et la valeur 1 dans son bit de drapeau. De cette façon, on charge une valeur des r bits d'adresse dans un nouveau mot de la CAM, uniquement si cette valeur n'a pas été chargée dans un autre mot de la CAM auparavant, lors d'une autre détection d'erreur. Ainsi, pendant la phase de test l'activation d'un signal d'accord par l'un ou l'autre des deux mécanismes sélectionne par le biais du MUX/BIST un ensemble FLSC de cellules d'emplacements de défauts pour mémoriser la position des parties défaillantes découvertes lors de ce cycle. Pendant le fonctionnement, l'activation, par le premier mécanisme, d'un signal d'accord, sélectionne, par le biais du MUX/RFL ou du MUX/FLSC, les signaux en provenance de l'ensemble FLSC sélectionné par le même signal d'accord lors de la phase de test. Un intérêt de cette technique est la possibilité d'utiliser un nombre des mots de CAM, des ensembles FLSC et des ensembles RFL inférieur à 2r. Troisième mode de réalisation de la présente invention Utilisation de mémoires CAM Dans les premier et deuxième modes de réalisation et leurs diverses variantes, on a supposé que les blocs contenant des défauts étaient signalés par une mémorisation dans des bascules et que, dès que l'on adressait un module contenant un défaut, divers multiplexeurs entraînaient une réorientation des entrées/sorties du module correspondant vers un module ou un sous-ensemble de remplacement. Ces multiplexeurs sont des moyens de connexion/déconnexion permettant de déconnecter du reste du système un module défaillant et de connecter à sa place un module non-défaillant. Selon un troisième mode de réalisation de la présente invention, présenté dans la figure 19, la mémoire est constituée de W blocs de base et on utilise k modules de remplacement. Les mots de chacun de ces blocs sont adressés par m bits d'adresse. De plus, w bits d'adresse sont décodés, comme dans la figure 6, pour générer W signaux de sélection de W modules de base. Pour effectuer la réparation, on utilise aussi une mémoire CAM qui comporte k mots de w bits. Pendant la phase de test, la détection d'une faute dans la mémoire active l'écriture dans un mot de la CAM de la valeur des w bits d'adresse. La sélection du mot de la CAM dans lequel s'effectue cette écriture peut se faire par un mécanisme qui parcourt les mots de la CAM en sélec15 tionnant à chaque fois un nouveau mot pour effectuer une écriture. Par exemple, on peut utiliser un compteur qui s'incrémente à chaque écriture dans la CAM. Le contenu de ce compteur est utilisé pour adresser le mot de la CAM dans lequel on va effectuer l'écriture suivante. Pendant la phase de fonc20 tionnement, lors d'un accès à la mémoire, les w bits d'adresse sont comparés en parallèle avec chacun des mots de la CAM. Si la comparaison réussit pour un mot de la CAM, un signal d'accord est activé. On obtient ainsi k signaux d'accord (un signal par mot de la CAM). Ces signaux commandent les moyens de connexion/déconnexion qui gênèrent W+k signaux de sélection (SO, Sl,... SW+kî1) pour sélectionner lors de chaque accès de la mémoire un parmi les W+k modules redondants et de base. Dans le cas présent, les moyens de connexion/connexion consistent à un bloc qui transfère les valeurs des k signaux d'accord de la CAM sur les signaux Sw, SW+1,... SW+k-l de sélection des k modules redondants, et désactive les signaux de sélection SO, Sl, Sw-1 des modules de base si un des signaux d'accord est activé. Ainsi l'opération courante (écriture ou lecture) est effectuée sur le module sélectionné par le signal de sélection actif, et dans le mot de ce module adressé par les m bits d'adresse. Cette technique remplace, par les 2m mots d'un module de remplacement, les 2m mots de la mémoire sélectionnés par des adresses ayant w bits égaux aux w bits stockés dans un mot de la CAM. Les 2m mots remplacés seront physiquement placés dans un bloc de base, mais ceci n'est pas nécessaire. En fait, on peut modifier le bloc de connexion/déconnexion pour générer à la place des signaux SO, Sl,... SW-l un signal unique de désélection (signal DES dessiné en pointillés dans la figure 19), qui désactive la mémoire qui contient les parties de base. Cette mémoire peut alors être organisée d'une façon quelconque, et il n'est pas nécessaire que les w bits d'adresse soient les bits des blocs de la mémoire de base. La seule contrainte est que ces bits soient les bits d'adresse non utilisés par les modules redondants. Notons que plusieurs fautes dans la mémoire, affectant des mots sélectionnés par la même valeur des w bits d'adresse, seront réparées par le même bloc de remplacement. Ainsi, on a besoin de stocker une valeur donnée des w bits d'adresse dans un seul mot de la CAM. Mais des mots défaillants, sélectionnés par la même valeur des w bits d'adresse, peuvent être détectés plusieurs fois pendant le test. Pour éviter de stocker la même valeur des w bits d'adresse dans plusieurs mots de la CAM, on compare à chaque détection de faute la valeur des w bits d'adresse aux valeurs des mots déjà stockés dans la CAM, et si la comparaison réussit, on évite de stocker de nouveau la même valeur des w bits d'adresse. On peut également ajouter une cellule contenant un drapeau d'indication de défaut à chaque mot de la CAM. Pendant une phase de test de la CAM, on écrira dans ce drapeau la valeur 0 si le mot CAM est exempt de défaut et la valeur 1 s'il est en défaut (ou inversement). La valeur 1 invalidera l'utilisation du mot CAM en défaut pour réaliser la réparation. Toutefois, puisqu'on utilise un seul mot de la CAM par module de remplacement, un mot de la CAM en défaut peut empêcher une réparation, même si le module de remplacement est exempt de défaut. Pour éviter cette situation, on peut inclure dans la CAM plus d'un mot par module de remplacement. Ainsi, si un mot de la CAM est en défaut, on peut utiliser l'un des autres mots de la CAM associé au même module de remplacement pour sélectionner le module de remplacement. Alors, pendant la phase de test de la mémoire, si le drapeau du mot de la CAM sélectionné pour effectuer une écriture est à 1, on sélectionne un autre mot pour effectuer cette écriture. Pendant le fonctionnement normal, la valeur 1 de ce drapeau désactive le signal d'accord du mot. Le bit de drapeau d'un mot de la CAM peut également être mis à un pour indiquer que le module de remplacement sélectionné par le signal d'accord de ce mot est en défaut. Ceci peut par exemple être effectué au cours d'une phase de test qui vérifie les modules de remplacement et, quand un module de remplacement s'avère être en défaut, on met à un la cellule du drapeau du mot de la CAM. Si plusieurs mots de la CAM par module de remplacement sont utilisés, les cellules de drapeau de tous ces mots de la CAM seront mises à un quand le module de remplacement correspondant est défaillant. La réparation statique que nous venons de décrire, utilise un module de 2m mots pour réparer une faute. Une réparation dynamique pourrait utiliser plus efficacement les ressources de remplacement. La réparation dynamique peut se faire de façon similaire à la réparation dynamique présentée ci-dessus. Dans ce cas, on va utiliser r des m bits d'adresse pour effec25 tuer la réparation dynamique. On va aussi utiliser une mémoire CAM comportant kx2r mots de w bits. Ces mots seront groupés en R=2r groupes de k mots comme présenté dans la figure 20. Les r bits d'adresse sont décodés afin de générer R signaux Sell, Sel2,... SelR, qui vont sélectionner pour chacune des R valeurs des ces bits un des R groupes de mots de la CAM. Ainsi, chaque opération effectuée, pendant la phase de test et pendant le fonctionnement normal, dans la CAM de la figure 19, va maintenant s'effectuer dans le groupe des mots de la CAM de la figure , sélectionné par la valeur courante des r bits d'adresse. Dans les autres groupes, aucune opération d'écriture ou de comparaison ne sera effectuée. On peut également effectuer la comparaison sur l'ensemble des mots de la CAM, et utiliser la valeur courante des r bits d'adresse pour valider uniquement les signaux d'accord du groupe de mots correspondant. Pour le reste, l'opération effectuée dans le groupe des mots sélectionné se déroule comme décrit dans le cas de la réparation statique présentée dans la figure 19. On note dans la figure 20 que nous avons kxR signaux d'accord (un signal par mot de CAM). Ces signaux sont réduits en k signaux en utilisant k portes logiques à R entrées. La porte de rang i reçoit en entrée les R signaux d'accord de rang i des R groupes de mots de la CAM. Les k sorties de ces portes sont utilisées pour commander les moyens de connexion/déconnexion comme en figure 20. Cette réparation permet de remplacer un ensemble de 2m-r mots de la mémoire (l'ensemble adressé par une valeur donnée des w+r bits d'adresse et de toutes les valeurs possibles des autres m-r bits d'adresse), par l'ensemble des mots d'un module de remplacement adressé par la même valeur des r bits d'adresse et de toutes les valeurs possibles des m-r bits d'adresse. A la place du décodeur de r bits d'adresse on peut utiliser une deuxième CAM pour générer les signaux de sélection des groupes de k mots de la CAM de la figure 20. Le fonctionnement de la deuxième CAM est similaire au fonctionnement de la CAM décrite dans les deux premiers modes de réalisation. Les signaux d'accord générés par la deuxième CAM seront utilisés pour sélectionner les groupes des k mots de la CAM de la figure 20. La réparation présentée dans la figure 21, permet d'effectuer ce remplacement par l'ensemble des mots d'un module de remplacement, adressé par une valeur des r bits d'adresse librement choisie et de toutes les valeurs possibles des m-r bits. On obtient ainsi une réparation plus efficace, car la réalisation présentée dans la figure 20 ne peut pas réparer une mémoire qui contient des défauts dans plus de k ensembles de mots décrits ci-dessus, pour lesquels les r bits d'adresse prennent la même valeur. Pour obtenir cette flexibilité, la figure 21 n'utilise pas de décodeur pour sélectionner un groupe de R mots de la CAM. A sa place, il utilise des mots de CAM contenant w+r bits d'adresse. A part le fait que l'on opère sur des mots de CAM plus grands, les opérations d'écriture et de comparaison sur les kxR mots de la CAM s'effectuent de la même manière que les opérations effectuées dans les k mots à w bits de la CAM de la réalisation statique présentée en figure 19. En particulier, pendant la phase de test on stocke dans les mots de la CAM w+r bits d'adresse. Pendant le fonctionnement normal, on compare les w+r bits de l'adresse courante avec tous les mots de la CAM pour activer un signal d'accord quand la comparaison réussit pour un mot. L'utilisation des bits de drapeau s'effectue de façon identique au cas de la réparation statique de la figure 19. Les k signaux de commande des moyens de connexion/déconnexion sont générés en utilisant k portes à R entrées, de façon identique à la réparation dynamique de la figure 20. Les mots de chaque module de remplacement sont adressés par m bits, comme dans la figure 20. Mais uniquement m-r de ces bits sont les bits d'adresse de la mémoire. Les r bits restants sont générés à l'aide de R portes logiques de k entrées. Chacune de ces portes reçoit en entrée les k bits d'accord d'un groupe des mots de la CAM. On obtient ainsi R signaux dont un seul peut prendre la valeur 1 à chaque cycle de fonctionnement, car une valeur des w+r bits de l'adresse peut être stockée dans un seul mot valide de la CAM (mot dont le drapeau contient la valeur 0). Ainsi, ces signaux peuvent prendre R+1 valeurs, la valeur 000... 0 et les R valeurs du code 1-parmi-R. Les R valeurs de ce code sont transformées par un bloc de codage en r signaux codés en code binaire. Ces signaux fournissent aux modules de remplacement les r bits d'adresse manquants. Un autre intérêt de la technique employée dans la figure 21 réside dans l'utilisation de modules de remplacement plus petits que les modules de base. Ainsi, on peut utiliser des modules de remplacement contenant 2m-c mots et employant m-c bits d'adresse. Dans ce cas, on utilisera une CAM ayant 2r-c groupes de k mots de w+r bits. On utilisera alors 2r-c portes à k entrées. Chacune de ces portes reçoit les k bits d'accord d'un groupe des mots de la CAM. Les 2r-c sorties de ces portes sont codées en r-c signaux. Ces signaux sont combinés avec les m-r bits d'adresse pour former les m-c bits d'adresse des modules de remplacement. Bien entendu on considère ici que c Bien entendu, les divers modes de réalisation de la présente invention peuvent être combinés de diverses manières et divers moyens équivalents pourront être retenus. REVENDICATIONS 1. Procédé de réparation des fautes dans un circuit composé de plusieurs modules et comportant: des moyens de mémorisation pour mémoriser les emplacements des fautes, des moyens de connexion/déconnexion permettant de déconnecter du reste du système les modules défaillants et de connecter à leur place des modules non-défaillants, et des moyens de production de signaux de commande des moyens de connexion/déconnexion, réagissant au contenu des moyens de mémorisation, la valeur des signaux de commande déterminant les modules qui seront déconnectés et les modules qui seront connectés à leur place, caractérisé en ce que chaque module est partagé en plusieurs parties, pendant une phase de test, des tests de fautes sont effectués pour les différents modules, et les résultats de test des différentes parties des modules sont mémorisés dans les moyens de mémorisation, et pendant une phase d'utilisation visant à l'utilisation de parties données de modules, lesdits signaux de commande sont déterminés par le contenu des moyens de mémorisation correspondant à ces parties de modules. 2. Procédé selon la revendication 1, dans lequel le circuit est une mémoire. 3. Procédé selon la revendication 2, dans lequel chaque module contient au maximum 2m éléments sélectionnés par m bits d'adresse, chaque module est partagé en plusieurs parties contenant chacune l'ensemble des éléments du module sélectionné quand r bits d'adresse prennent une valeur donnée, et les m-r autres bits d'adresse prennent l'ensemble des valeurs possibles, les résultats des tests de fautes des différentes parties de chaque module sont mémorisés dans des moyens de mémo- risation distincts, sélectionnés par la valeur courante des r bits d'adresse, et pendant une phase d'utilisation, lesdits signaux de commande sont déterminés par le contenu des moyens de mémorisa5 tion distincts, sélectionnés par la valeur courante des r bits d'adresse. 4. Procédé selon la revendication 2, appliqué à une mémoire à W modules de base et k modules redondants, dans lequel: chaque module de base comporte au maximum S=2s portions identiques, sélectionnées par s bits d'adresse, z modules redondants (z>0, k-z>0), comportent chacun le même nombre des portions, de même taille, que les modules de base, sélectionnées par s bits d'adresse, k-z modules redondants comportent chacun au maximum T=2t portions de même taille que les modules de base, sélectionnées par t bits d'adresse qui constituent un sous-ensemble des s bits d'adresse, les résultats des tests des fautes de chaque partie des k-z modules redondants sont stockés dans au maximum P=2P ensembles distincts de moyens de mémorisation, sélectionnés par p bits d'adresse qui constituent un sous-ensemble ou surensemble des t bits d'adresse, avec p=t+c, c étant un entier négatif, positif ou nul, tel que pÄ0, les résultats des tests des fautes de chaque partie des modules de base et des z modules redondants sont stockés dans au maximum R=2r ensembles distincts de moyens de mémorisation, sélectionnés pendant la phase de test par r bits d'adresse qui constituent un sur-ensemble ou sous-ensemble des s bits d'adresse, avec r=s+c, et lesdits signaux de commande sont fonction des p bits d'adresse et de au maximum P=2P groupes de signaux de commande intermédiaires, chaque groupe des signaux de commande intermédiaires étant fonction: - du contenu de l'ensemble des moyens de mémorisation affectant les k-z modules redondants, sélectionné pendant la phase de test par une valeur des p bits d'adresse, - de au maximum U=2r-P ensembles de moyens de mémorisation d'emplacement des fautes affectant les modules de base et les z modules redondants, sélectionnés pendant la phase de test par la même valeur des p bits d'adresse, et - des u parmi les r bits d'adresse autres que les p bits d'adresse (u=r-p). 5. Procédé selon la revendication 3, appliqué à une mémoire à W modules de base et k modules redondants, dans lequel chaque module de base comporte un ensemble de cellules mémoire connectées, en l'absence de fautes, sur le même bit de données, et chaque module redondant comporte le même nombre de cellules qu'un module de base. 6. Procédé selon la revendication 4, appliqué à une mémoire à W modules de base et k modules redondants, dans lequel chaque module de base comporte un ensemble de cellules mémoire connectées, en absence de fautes, au même bit des données. 7. Procédé selon la revendication 3 ou 4, appliqué à une mémoire à W modules de base et k modules redondants, dans lequel les modules redondants sont sélectionnés par k signaux de sélection/désélection, et les moyens de commande de connexion/ déconnexion sont commandés par k signaux de commande et génèrent les k signaux de sélection/désélection des modules redondants et des signaux de sélection/désélection des modules réguliers. 8. Procédé selon les revendications 3 et 7, dans lequel: les moyens de mémorisation consistent en une mémoire CAM comportant des groupes de k mots à w bits, pendant la phase de test d, la valeur de r bits d'adresse sélectionne un groupe de k mots, et à chaque détection de faute la valeur des w bits d'adresse est stockée dans un mot du groupe sélectionné, pendant l'utilisation de la mémoire, la valeur des r bits d'adresse sélectionne un groupe de k mots, la valeur courante des w bits d'adresse est comparée avec le contenu des mots de la CAM pour activer un signal d'accord pour chaque mot qui contient la valeur courante des w bits d'adresse, les signaux de commande sont fonction des signaux d'accord du groupe de mots de la mémoire CAM sélectionné par la valeur courante des r bits d'adresse. 9. Procédé selon la revendication 2, appliqué à une mémoire à W modules de base et k modules redondants, dans lequel: les modules de base sont sélectionnés par W signaux de sélection, et les modules redondants sont sélectionnés par k signaux de sélection, les éléments de chaque module de base sont des mots de mémoire sélectionnés par m bits d'adresse, les éléments de chaque module redondant sont des mots de mémoire sélectionnés par m-c bits d'adresse, les moyens de connexion/déconnexion reçoivent k signaux de commande et W signaux générés par un circuit qui décode w bits d'adresse, et génèrent les W signaux de sélection des modules de base et les k signaux de sélection des modules redondants les moyens de mémorisation consistent en une mémoire CAM comportant plusieurs groupes de k mots à w+r bits, pendant la phase de test, la valeur courante des w+ r bits d'adresse est stockée dans un mot de la CAM à chaque détection de faute, pendant le fonctionnement de la mémoire, la valeur courante des w+ r bits d'adresse est comparée au contenu de tous les mots de la CAM pour activer un signal d'accord pour chaque mot qui contient la valeur des w+r bits d'adresse, les signaux de commande sont fonction des signaux d'accord de la CAM, et les modules redondants sont adressés par m-r bits d'adresse de base de la RAM et par r-c bits générés à partir des bits d'accord de la CAM. 10. Procédé selon la revendication 4, dans lequel les S=2s portions des modules de base et les T=2t portions des modules redondants sont des colonnes sélectionnées respectivement par s et t bits d'adresse, p = 0, P = 1, les signaux de commande, déterminant la connexion des modules de base sur les bits des données, sont fonction des r bits d'adresse, du contenu de l'ensemble des moyens de mémorisation d'emplacements des fautes dans les modules redondants, et du contenu des U=R=2r ensembles de moyens de mémorisation d'emplacements des fautes dans les modules de base, la connexion de chaque bloc de base sur le bit de données correspondant est établie à chaque opération d'écriture, les signaux de commande, déterminant la connexion des blocs de remplacement sur les bits des données, sont fonction du contenu de l'ensemble des moyens de mémorisation d'emplacements des fautes dans les modules redondants, et du contenu des U=R=2r ensembles de moyens de mémorisation d'emplacements des fautes dans les modules de base, et la connexion des blocs de remplacement aux bits de données est validée par un multiplexeur commandé par des signaux qui sont fonction du contenu de l'ensemble des moyens de mémorisation d'emplacements des fautes dans les modules redondants, et du contenu des U=R=2r ensembles de moyens de mémorisation d'emplacements des fautes dans les modules de base.