Brevet FR2770020A1 — publié le 19990423

VOIRE À FoNCTION D'AUTO-REPARATION La présente invention concerne une mémoire comportant des rangées de cellules mémoire de secours dans le but d'affecter, pendant une phase d'auto-test, une rangée alternative à une adresse dans le cas où une première rangée affectée à l'adresse est défectueuse. La figure 1 représente schématiquement un exemple de mémoire à fonction d'auto-réparation. Cette mémoire comprend un décodeur d'adresses 10 pour sélectionner l'une parmi N rangées de cellules mémoire, en fonction d'une adresse A fournie au décodeur sur un bus d'adresses. Les N sorties du décodeur 10 sont rassemblées par groupes de n sorties (n = 10, par exemple). Les n sorties de chaque groupe sont connectées à un élément d'aiguillage respectif 12 qui est à son tour connecté à n + 1 lignes de mot WL, chaque ligne de mot servant à sélectionner une rangée correspondante de cellules mémoire 14. Par conséquent, pour chaque groupe de n sorties du décodeur 10, il y a une rangée de cellules mémoire de secours. Chaque élément d'aiguillage 12 comprend une série de commutateurs disposés de manière que la i-ème sortie du décodeur puisse être reliée, soit à la i-ème ligne de mot, soit à la (i+l)-ème ligne de mot. Bien entendu, les commutateurs sont comnandés de manière que chaque ligne de mot soit reliée à une seule sortie du décodeur. Une telle mémoire est habituellement testée à la mise sous tension par un circuit d'auto-test et de réparation intégré (BISTR) qui met initialement tous les corranutateurs des éléments d'aiguillage à la même position, par exemple à la position supérieure, conane cela est représenté pour les deux premiers commutateurs en figure 1. Les rangées mémoire sont alors testées par la fourniture d'adresses successives A au décodeur 10 pendant que l'on lit et écrit des vecteurs de test. Si une rangée mémoire est défectueuse, la sortie correspondante du décodeur et toutes les sorties suivantes du même groupe sont connectées à des lignes de mot alternatives. Dans la figure 1, la troisième rangée mémoire qui correspondait à la troisième sortie du décodeur est défectueuse, d'où il résulte que la troisième sortie du décodeur est commutée vers la quatrième ligne de mot, ce qui nécessite que les sorties restantes du décodeur dans le même groupe soient également commutées. Un inconvénient évident de cette structure de mémoire est que deux rangées mémoire défectueuses ou plus dans un même groupe ne peuvent être réparées. En d'autres termes, si plusieurs défauts sont localisés dans un groupe, ils ne peuvent être réparés en utilisant des rangées mémoire de secours d'un autre groupe. Bien entendu, on pourrait envisager d'utiliser deux rangées mémoire de secours ou plus dans chaque groupe, mais les éléments d'aiguillage 12 seraient alors notablement plus complexes. Un objet de la présente invention est de prévoir une structure mémoire à fonction d'auto-réparation, dans laquelle toute rangée mémoire de secours peut être utilisée pour réparer un défaut situé n'importe où. Cet objet est atteint par une mémoire comprenant une pluralité de rangées mémoire accessibles par un bus d'adresses, le nombre de rangées étant supérieur au nombre d'adresses utilisées sur le bus d'adresses ; et des moyens pour associer des rangées choisies de la mémoire à des adresses respectives. Lesdits moyens comprennent une mémoire associative ayant un emplacement programmable pour chaque rangée mémoire, ledit emplacement ayant un champ d'adresse et un bit de validation, et étant prévu pour sélectionner sa rangée respective lorsqu'il contient l'adresse présente sur le bus d'adresses et que le bit de validation est à un état actif. Selon un mode de réalisation de la présente invention, toutes les adresses utilisées sur le bus d'adresses sont contenues à des emplacements respectifs dont le bit de validation est à l'état actif, le bit de validation des emplacements restants étant à un état inactif. Selon un mode de réalisation de la présente invention, chaque emplacement comprend une pluralité de cellules mémoire correspondant respectivement aux lignes du bus d'adresses, chaque cellule mémoire étant associée à un premier transistor commandé par une sortie de la cellule mémoire, et à un deuxième transistor connecté en série avec le premier transistor entre une ligne d'alimentation et une ligne de sélection de rangée, et commandé par une ligne respective du bus d'adresses. Selon un mode de réalisation de la présente invention, chaque emplacement de la mémoire associative peut être sélectionné en écriture par un bit respectif d'un registre à décalage. Selon un mode de réalisation de la présente invention, la mémoire comprend une pluralité de registres accessibles par microprocesseur, les bits des registres étant connectés pour sélectionner en écriture des emplacements respectifs de la mémoire associative. Un procédé de réparation d'une mémoire du type susmentionné comprend les étapes consistant à tester une rangée mémoire successive ; si la rangée mémoire est bonne, à écrire une adresse successive et ledit état actif à l'emplacement respectif de la mémoire associative ; et, si la rangée mémoire est mauvaise, à écrire un état inactif dans le bit de validation de l'emplacement respectif. 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 la figure 1, précédemment décrite, représente schématiquement et partiellement une structure de mémoire à autoréparation classique la figure 2 représente schématiquement et partiellement un mode de réalisation de structure mémoire à auto-réparation selon la présente invention Cet et la figure 3 représente un exemple avantageux de cellules mémoire d'une mémoire associative utilisée dans la structure mémoire de la figure 2. A la figure 2, selon la présente invention, le décodeur d'adresses ainsi que les éléments d'aiguillage d'une mémoire à auto-réparation classique sont remplacés par une mémoire associative 20 (CAM). Chaque emplacement de la mémoire associative est associé à une ligne de mot respective WL. Il y a N lignes de mot adressables et R lignes de mot de secours. La mémoire associative 20 est prévue pour sélectionner une ligne de mot WL lorsque l'emplacement correspondant contient l'adresse A appliquée sur le bus d'adresses de la mémoire. Bien entendu, les emplacements de la mémoire associative contiendront tous des adresses différentes de manière qu'une seule ligne de mot soit sélectionnée à la fois. Dans le but de différencier, dans la mémoire associative, un emplacement contenant une adresse d'un emplacement vide, chaque emplacement comporte, par exemple, un bit de validation. Lorsque le bit de validation est à un état actif (par exemple 1), il indique que la ligne de mot correspondante est sélectionnable et, quand il est à un état inactif (0), il indique que la ligne de mot ne sera pas sélectionnée. Ainsi, chaque emplacement de la mémoire associative 20 a un champ d'adresse, représenté à droite dans la figure 2, étendu par un bit de validation, représenté à gauche. A chaque fois qu'une adresse A est fournie à la mémoire, cette adresse est comparée aux champs d'adresses de la mémoire associative tandis qu'un état actif 1 est comparé aux bits de validation. La ligne de mot correspondant à un emplacement de la mémoire associative ne sera sélectionnée que si les bits de son champ d'adresse et le bit de validation coïncident tous avec les bits de l'adresse et le bit 1. Une ligne de mot correspondant à un emplacement dont le bit de validation est à 0 n'est jamais sélectionnée, quelque soit le contenu du champ d'adresse. Avec une telle configuration, une ligne de mot prédéterminée peut être associée à une adresse quelconque simplement en écrivant cette adresse dans l'emplacement correspondant de la mémoire associative, et en mettant à 1 le bit de validation de cet emplacement. Jusqu'à R rangées mémoire, consécutives ou non, peuvent avoir des défauts sans affecter la fonction d'auto-réparation de la mémoire. Les rangées mémoire mauvaises ou en excédent sont simplement rendues non sélectionnables en mettant à 0 les bits de validation des emplacements correspondants de la mémoire associative. A la mise sous tension, un circuit d'auto-test et réparation intégré 16 teste les rangées mémoire et remplit les emplacements de la mémoire associative 20 de valeurs adéquates. Par exemple, le circuit 16 parcourt successivement les emplacements de la mémoire associative en écrivant une adresse successive et un 1 dans chaque emplacement. Ceci rend la rangée mémoire correspondante accessible afin d'être testée classiquement. Si la rangée est bonne, les valeurs sont laissées inchangées dans l'emplacement courant et le circuit 16 procède avec l'emplacement suivant. Si la rangée est mauvaise, le bit de validation correspondant est mis à 0, comme cela est représenté en figure 2 pour les troisième, cinquième et sixième emplacements. L'adresse qui a été écrite dans l'emplacement courant est de nouveau écrite dans l'emplacement suivant, comme cela est représenté pour les quatrième, sixième et septième emplacements. Cette procédure est répétée jusqu'à ce que la dernière adresse N-l est écrite dans un emplacement de la mémoire associative, qui correspond à une rangée bonne. Les bits de validation des emplacements restants sont normalement tous à 0, conme cela est représenté, la valeur contenue dans les champs d'adresses étant arbitraire. On remarquera que la mémoire associative 20 remplace aussi bien le décodeur d'adresses que les éléments d'aiguillage d'une mémoire à auto-réparation classique (figure 1). Bien entendu, des circuits supplémentaires sont nécessaires pour modifier les contenus de la mémoire associative. Ces circuits peuvent constituer un décodeur d'adresses. Puisqu'un tel décodeur d'adresses sera utilisé à faible vitesse pendant une phase de test, il est inutile de l'optimiser en vitesse conne cela est fait pour les décodeurs d'adresses utilisés dans des mémoires classiques. Un décodeur d'adresses lent occupe notablement moins de surface qu'un décodeur d'adresses rapide. Une solution plus avantageuse pour accéder à la mémoire associative 20 est représentée en figure 2. Chaque emplacement de la mémoire associative peut être sélectionné en écriture par un bit respectif d'un registre à décalage 22. A la mise sous tension, un 1 est injecté dans le premier bit du registre à décalage, ce qui sélectionne pour modification le premier emplacement de la mémoire associative. Ensuite, à chaque fois que le registre à décalage 22 est cadencé, l'emplacement suivant de la mémoire associative est sélectionné. Souvent, le processus d'auto-test est effectué par un microprocesseur. Alors, le registre 22 peut être subdivisé en une série de registres dont chacun est accessible par le microprocesseur. De cette manière, les emplacements de la mémoire associative deviennent accessibles de manière aléatoire. La figure 3 représente un mode de réalisation de deux cellules d'un emplacement de la mémoire associative 20 de la figure 2. Chaque cellule est construite autour d'une cellule de mémoire statique classique comprenant deux inverseurs 30 et 31 connectés tête-bêche. Une telle cellule fonctionne habituellement en différentiel. La sortie de l'inverseur 30, fournissant la valeur non inversée Q du bit stocké, est connectée à la grille d'un transistor MOS à canal N MN1, tandis que la sortie de l'inverseur 31, fournissant la valeur inversée Q/ du bit stocké, est connectée à la grille d'un transistor MOS à canal N MN1/. Un transistor MOS à canal N MN2 est relié en série avec le transistor MN1 entre la ligne de mot WL correspondant à l'emplacement et une ligne d'alimentation basse Vss. Un transistor MOS à canal N MN2/ est connecté de la même manière avec un transistor MN1/. Les transistors MN2 et MN2/ sont respectivement conmandés par deux lignes différentielles Ax/ et Ax représentant le bit d'adresse correspondant sous forme complémentaire (Ax étant le bit d'adresse et Ax/ son complément). Un élément de mise à l'état haut, tel qu'un transistor MOS à canal P MP1, est connecté entre la ligne de mot WL et la ligne d'alimentation haute Vdd. Ce transistor MP1 est rendu conducteur à chaque accès de la mémoire. Il peut être remplacé par une résistance. La figure 3 représente les cellules correspondant à deux bits d'adresse Ai et Ai+l. Les grilles des transistors MN2 et MN2/ de la cellule correspondant au bit de validation reçoivent respectivement les états O et 1, ce qui correspond à la fourniture de l'état actif 1. Cet état actif 1 peut être fourni en permanence, ce qui veut en fait dire que le transistor MN2/ peut être remplacé par un court-circuit et que les transistors MN1 et MN2 peuvent être omis dans les cellules correspondant aux bits de validation. Des circuits classiques pour modifier les contenus des cellules mémoire statiques de la figure 3 ne sont pas représentés pour des raisons de clarté. A titre d'exemple, les cellules de la figure 3 sont toutes deux à l'état 1. Si, commue cela est représenté, l'un des bits d'adresse (Ai+l) n'est pas égal au contenu de la cellule qui lui correspond, deux transistors connectés en série, ici les transistors MN1 et MN2 sont tous deux conducteurs et tirent la ligne de mot WL vers le potentiel Vss, c'est-à-dire vers l'état 0, d'où il résulte que la rangée mémoire correspondante n'est pas sélectionnée. Si tous les bits d'adresse et l'état actif 1 coïn- cident avec les contenus des cellules, la ligne de mot WL ne sera pas tirée vers le potentiel bas. Le transistor MP1 assure alors que la ligne de mot WL reste à un niveau haut sélectionnant la rangée mémoire. Le transistor MP1 devrait toutefois être plus "faible" que l'association série des transistors MN1 et MN2 ou MN1/ et MN2/ pour assurer que la ligne de mot WL sera suffisamment tirée vers le potentiel bas lorsque le bit de validation est à 0 ou qu'au moins un bit d'adresse ne coïncide pas. La structure de la figure 3 est particulièrement bien adaptée au cas où les rangées mémoire sont également constituées de cellules mémoire statiques. La mémoire associative 20 peut alors être réalisée facilement dans la même matrice mémoire et donc avoir une structure compacte. Les cellules de la mémoire associative 20 peuvent être non différentielles et adaptées à tout autre type de mémoire. Souvent, une matrice mémoire est divisée en pages dont les rangées peuvent être sélectionnées par des lignes de mot locales. Dans ce cas, une mémoire associative peut être utilisée selon l'invention pour chaque page. L'emplacement de chaque mémoire associative aura alors un nombre de bits réduit, correspondant aux bits d'adresse nécessaires à sélectionner les rangées d'une page et à un bit de sélection de page. De nombreuses variantes et modifications de la présente invention apparaîtront à l'home du métier. Par exemple, les types des transistors peuvent être modifiés en modifiant également les polarités des lignes d'alimentation auxquelles ils sont connectés. REVENDICATIONS 1. Mémoire comprenant - une pluralité de rangées mémoire (14) accessibles par un bus d'adresses (A), le nombre de rangées étant supérieur au nombre d'adresses utilisées sur le bus d'adresses ; et - des moyens pour associer des rangées choisies de la mémoire à des adresses respectives caractérisée en ce que lesdits moyens comprennent une mémoire associative (20) ayant un emplacement programnable pour chaque rangée mémoire, ledit emplacement ayant un champ d'adresse et un bit de validation, et étant prévu pour sélectionner sa rangée respective lorsqu'il contient l'adresse présente sur le bus d'adresses et que le bit de validation est à un état actif. 2. Mémoire selon la revendication 1, caractérisée en ce que toutes les adresses utilisées sur le bus d'adresses sont contenues à des emplacements respectifs dont le bit de validation est à l'état actif, le bit de validation des emplacements restants étant à un état inactif. 3. Mémoire selon la revendication 1, caractérisée en ce que chaque emplacement comprend une pluralité de cellules mémoire correspondant respectivement aux lignes du bus d'adresses, chaque cellule mémoire étant associée - à un premier transistor (MN1) comnandé par une sortie de la cellule mémoire ; et - à un deuxième transistor (MN2) connecté en série avec le premier transistor entre une ligne d'alimentation (Vss) et une ligne de sélection de rangée (WL), et commandé par une ligne respective du bus d'adresses. 4. Mémoire selon la revendication 1, caractérisée en ce que chaque emplacement de la mémoire associative peut être sélectionné en écriture par un bit respectif d'un registre à décalage (22). 5. Mémoire selon la revendication 1, caractérisée en ce qu'elle comprend une pluralité de registres (22) accessibles par microprocesseur, les bits des registres étant connectés pour sélectionner en écriture des emplacements respectifs de la mémoire associative. 6. Procédé de réparation d'une mémoire selon la revendication 1, comprenant les étapes suivantes - tester une rangée mémoire successive - si la rangée mémoire est bonne, écrire une adresse successive et ledit état actif à l'emplacement respectif de la mémoire associative ; et - si la rangée mémoire est mauvaise, écrire un état inactif dans le bit de validation de l'emplacement respectif.