Brevet FR2622342A1 — publié le 19890428

MEMOIRE A ACCES ALEATOIRE La présente invention concerne une mémoire matricielle à accès aléatoire. Elle concerne plus particulièrement une mémoire en technologie CMOS qui présente une très faible consommation. De telles mémoires sont bien connues. Leur domaine d'application privilegié comprend principalement les circuits destinés à équiper des appareils à alimentation autonome. Dans une forme de réalisation connue, la mémoire est composée de cellules identiques disposées en lignes et en colonnes, chaque cellule comportant une bascule bistable, réalisée au moyen de deux inverseurs à transistors MOS complémentaires, et deux transistors interrupteurs MOS reliant les bornes de la bascule à deux bornes d'accès de la cellule. Les grilles de commande des transistors interrupteurs d'une cellule sont reliées à une ligne d'adressage, et les bornes d'accès de cette cellule aux deux bus d'information d'une colonne. Dans une mémoire de ce type, il est bien connu que l'opération de lecture d'une cellule, ou d'écriture de cette cellule, doit être précédée d'une phase de précharge de tous les bus de la mémoire. Si cette précaution n'est pas prise l'information, contenue dans les cellules de la ligne dont fait partie la cellule considérée, peut être détruite. La précharge consiste à porter les bus à une tension continue donnée. Comme chaque bus présente une capacité parasite relativement importante, le courant de charge de ces capacités est élevé et il représente une part importante de la consommation totale de la mémoire. La consommation due à cette charge constitue un inconvénient important des mémoires statiques à faible consommation de l'art antérieur. La présente invention se propose de pallier à cet inconvénient. La mémoire à accès aléatoire selon l'invention, comportant une pluralité de cellules identiques disposées suivant m lignes et n colonnes et auxquelles sont connectés m lignes d'adressage et 2n bus d'information, chaque cellule étant constituée d'une bascule bis- table et de deux interrupteurs commandés par une ligne d'adressage et reliant, chacun, une borne de sortie de la bascule à un bus d'information, est caractérisée en ce que chaque cellule comporte, en outre, des moyens d'isolement connectés, chacun, entre une borne de sortie de la bascule et le bus d'information qui lui correspond et dont la conduction (respectivement le blocage) est contrôlée par l'état du bus correspondant à la deuxinème borne de sortie de la bascule. La mémoire selon l'invention présente l'avantage que, sans _,,ser de lignes de rnnnexion supplémentaires, l'application de signaux logiques appropriés sur les bus d'une colonne permet d'iso- ler toutes les bascules de cette colonne, et donc de préserver l'information qu'elles contiennent. Dans ces conditions, il est possible d'assurer que la lecture d'une ou de plusieurs cellules ne nécessite la précharge que des bus de la ou des colonnes contenant cette ou ces cellules, les autres bus étant maintenus à un niveau logique assurant l'isolement des bascules qui leur correspondent. Ce même avantage existe pour la phase d'écriture. Ceci entraîne une réduction de la consommation d'autant plus importante que le mémoire est grande. D'autres caractéristiques et avantages de l'invention ressor- tiront de la description qui va suivre, faite en regard des dessins annexes qui représentent, à titre d'exemple explicatif mais nul- lement limitatif, une forme de réalisation avantageuse d'une mémoire statique à accès aléatoire à transistors MOS complémentaires. Sur ces dessins, o les mêmes reférences se rapportent à des éléments analogues: la figure 1 représente le schéma d'une mémoire matricielle formée de cellules identiques et connue dans l'art antérieur; - la figure 2 représente une cellule de mémoire selon l'inven- tion; et - la figure 3 représente une mémoire matricielle comportant des cellules selon l'invention. Avant de décrire une forme de réalisation de la mémoire selon l'invention, il est utile de rappeler auparavant la structure et le fonctionnement d'une mémoire statique matricielle à accès aléatoire connue de l'art antérieur. Cette mémoire, qui est représentée sur la figure 1 est formée de quatre cellules identiques, référencées mll, m12, m21, m22, ces cellules étant disposées suivant deux lignes et deux colonnes. Bien entendu, la mémoire pourrait comporter davantage de cellules, qui seraient alors disposées suivant un nombre m de lignes et n de colonnes plus grand. Toutes les cellules étant identiques, seule la structure interne de la cellule mll a été représentée. Cette cellule comporte essen- tiellement une bascule bistable ou flip-flop FFI1, et un premier et un deuxième transistors interrupteurs référencés respectivement T11 et T'11. La bascule est formée d'un premier et d'un deuxième inver- seurs. Le premier inverseur comprend un transistor MOS du type N, référencé 1, et un transistor MOS du type P, référencé 2, ces deux transistors étant connectés en série entre une ligne d'alimentation négative VSS et une ligne d'alimentation positive VDD. Le deuxième inverseur comporte un transistor 1' et un transistor 2', ces transistors étant identiques respectivement aux transistors 1 et 2. La sortie du premier inverseur détermine une première borne Fll de la bascule, et elle est reliée aux grilles des transistors 1' et 2'. De même, la sortie du deuxième inverseur détermine une deuxième borne F'11 de la bascule, et elle est reliéee aux grilles des transistors 1 et 2. Les transistors Tll et T'11 sont, dans l'exemple considére, des transistors MOS de type N, le premier étant connecté entre la borne Fll et une première borne d'accès Qll de la cellule, et le deuxième entre la borne F'11 et une deuxième borne d'accès Q'11 de cette cellule. Enfin, les grilles des transistors Tll et T'I1 sont reliées à une borne de commande Kll de la cellule. Les bornes Kil, K12, des cellules mil, m12 appartenant à la première ligne de la mémoire sont connectées à une première ligne d'adressage L1. De même les bornes K21, K22 des cellules de la deuxième ligne sont connectées à une deuxième ligne d'adressage L2. Les bornes d'accès qll, q21 des cellules mil, m21, appartenant à la première colonne de la mémoire sont reliées à un premier bus d'in- formation B1 de cette colonne, et les bornes q'11, q'21 de ces mêmes cellules à un deuxième bus d'information B'l. De même, les bornes q12, q22 et q'12, q'22' des cellules de la deuxième colonne sont reliées respectivement à un premier bus B2 et à un deuxième bus B'2 de cette colonne. Le contenu de la mémoire est donné par l'état des bascules FFll... FF22, cet état étant défini par les niveaux logiques complé- mentaires existant respectivement aux bornes Fll et F'11... F22 et F'22. En dehors des phases d'écriture et de lecture les lignes d'adressage L1, L2 sont au niveau logique bas. La bascule FF11 est ainsi isolée des bus B1, B'I gràce aux transistors Tll et T'11 qui se trouvent à l'état bloqué. Les autres bascules étant également isolés des bus, ceux-ci présentent un niveau logique indéterminé. Pour lire l'information se trouvant dans la cellule mli, la ligne Li est portée au niveau logique haut, ce qui a pour effet, en rendant conducteurs les transistors Tll, T'11, de relier la borne Fll au bus B1 et la borne F'11 au bus B'i. L'état logique de ces bus correspond donc à celui des bornes de la bascule FF11. La lecture de l'information peut alors être faite, de manière connue, en reliant aux bus B1, B'1 un amplificateur différentiel, dont la sortie délivre l'état logique de la cellule mil. Une telle lecture correspond cependant à un cas idéal car, en réalité, les bus B1, B'l, B2 et B'2 présentent par rapport à la masse des capacités parasites, référencées respectivement Cl, C'1, C2 et C'2. Or, à chaque lecture de la mémoire, ces capacités sont chargées aux tensions auxquelles sont portés les bus, et elles peuvent garder cet état jusqu'à la prochaine lecture. Ainsi si, par exemple, la lecture de la cellule mll suivait celle de la cellule m21, les bus B1, B'1 se trouveraient, juste avant la lecture de la cellule mil, aux niveaux logiques des bornes q21, q'21. Deux cas peuvent alors se présenter. Ou bien les bus B1, B'I se trouvent aux mêmes niveaux logiques que respectivement les bornes Fll, F'11, ou bien ils se trouvent à des niveaux logiques complémentaires. Le premier cas correspond à celui o les cellules m21, et mil contiennent la même information. La lecture de la cellule mil, consistant à porter au niveau logique "1" la ligne L1 pour rendre conducteurs les transistors Tll et T'11l, elle n'entraîne dans ces conditions aucune circulation de courant entre les bornes Fll et qll, ni entre les bornes F'11 et q'll. Par contre, si les cellules m21 et mll contiennent des informations différentes, lors de la lecture de la cellule mil, le bus B1, se trouvant par exemple au niveau "1", est relié à la borne Fll qui est au niveau "O". Bien entendu, le bus B'1 et la borne F'1l se trouvent respectivement aux niveaux "O" et "1". Les conditions seraient alors réunies pour entraîner un changement d'état de la bascule. Il est évident que ce qui vient d'être dit pour la cellule mil s'applique aussi à la cellule mI2 dont l'information peut être détruite, au moment o la ligne Lt est portée au niveau logique "1", si les bus B2 et B'2 contiennent une information différente de celle de la bascule de cette cellule. Pour éviter cet inconvénient majeur, il est nécessaire de porter, avant la lecture, les bus de toutes les colonnes au potentiel VDD, c'est-a-dire au niveau logique haut. Cette opération s'appelle la précharge des bus. En portant la ligne d'adressage Li au niveau "1", les bus étant préchargés, l'information contenue dans les cellules mil et m12 est conservée si les cellules sont bien dimensionnées. En effet, en considérant la cellule mil, une des bornes de la bascule, par exemple Fil, est aussi au niveau "1" et ce niveau ne changera pas une fois le transistor Tll mis en conduction. La borne Fil se maintenant au niveau logique haut, le transistor 1' se trouve à l'état conducteur et pourra décharger la capacité C'1 à travers T'11. Pour introduire une information dans la cellule mil, il y a lieu d'imposer, par des moyens connus non représentés, aux bus Bt et B'I des niveaux logiques complémentaires représentatifs de cette infor- mation, puis de porter la ligne d'adressage L1 au niveau logique haut. Les transistors Tll et T'il se trouvent à l'état conducteur et, si la cellule est bien dimensionnée, les bornes Fll et F'11 de la bascule FF11 prendront les mêmes niveaux logiques que les bus B1 et B'l. Si, au moment o0 la ligne L1 est portée au niveau logique "1", la cellule mil recoit bien la nouvelle information donnée par l'état des bus B1, B'Il, par contre, l'information contenue dans la cellule m12 risque d'être detruite pour les mêmes raisons que celles qui viennent d'être données à propos de la lecture. Pour éviter cette difficulté il suffit, dans ce cas aussi, de précharger les bus B2, B'2 avant de porter la ligne L1 au niveau logique haut. La précharge des bus, si elle permet de préserver l'information contenue dans les cellules faisant partie de la ligne sélectionnée dans la mémoire, entraîne cependant un supplément de consommation puisqu'elle consiste à porter un bus de chaque colonne au niveau logique "1", l'autre bus étant nécessairement déja à ce niveau. Si la mémoire comporte un nombre élevé de colonnes, le courant néces- saire pour charger les capacités parasites associées à ces bus peut représenter la part prépondérante dans la consommation totale de la mémoire. La présente invention à pour objet de fournir une mémoire présentant une consommation réduite. Ceci est obtenu en utilisant un type de cellule dont une forme de réalisation est représentée sur la figure 2. Cette cellule est référencée Mij, i prenant les valeurs de 1 à m, et j de 1 à n, si la mémoire comporte m lignes et n colonnes. La référence FFij désigne dans cette cellule une bascule, ou flip- flop, identique à la bascule Fll de la figure 1. La bascule FFij comporte une première borne Fij qui est connectée à un premier transistor interrupteur Tij, et une deuxième borne F'ij qui est reliée à un deuxième transistor interrupteur T'ij, ces deux transis- tors étant identiques. Les grilles des transistors Tij et T'ij sont connectées à une borne de commande Kij, laquelle est reliée à une ligne d'adressage Li de la mémoire. En série avec le transistor Tij est connecté un troisième transistor interrupteur Xij, les transistors Tij et Xij reliant ainsi la borne Fij à une première borne d'accès Qij de la cellule Mij. De même, en série avec le transistor T'ij est connecté un quatrième transistor interrupteur X'ij, ces deux transistors reliant la borne F'ij à une deuxième borne d'accès Q'ij de la cellule. Enfin à la borne Qij sont reliés un premier bus Bj et la grille du transistor X'ij, alors qu'à la borne Q'ij sont reliés un deuxième bus B'j et la grille du transistor Xij. Les transistors Xij et X'ij sont de même type que les transis- tors Tij et T'ij. Bien entendu, le comportement de la cellule ne serait pas modifié par une permutation des transistors Tij et Xij et/ou T'ij et X'ij, ces transistors étant en série. Lorsque les bus Bj et B'j sont au niveau logique "O", la cellule est dans un mode non-opérationnel ou passif. Les grilles de transis- tors Xij et X'ij étant alors au niveau logique bas, ces transistors isolent la bascule FFij des bus, même si la ligne d'adressage Li se trouve au niveau logique haut. L'information contenue dans la bascule ne peut pas, dans ces conditions, être modifiée. Lorsque les bus Bj et B'j sont au niveau logique "1" et que la ligne d'adressage Li est au niveau logique "O", les bus sont pré- chargés mais la bascule est isolée des bus par les transistors Tij et T'ij. Pour lire l'information contenue dans la cellule Mij, il faut d'abord précharger les bus, puis déconnecter les moyens de commande externes pour que les bus soient à haute impédance, enfin porter la ligne d'adressage Li au niveau logique "1". Si, dans ces conditions, la borne Fij est par exemple au niveau logique "O" et la borne F'ij au niveau "1", les transistors Tij et Xij étant conducteurs, la capacité Cj est déchargée à travers les transistors Xij,Tij et 1, ce qui fait passer le bus Bj au niveau logique "O". Quant au bus B'j, étant préchargé, il se trouve déjà au même niveau logique que la borne F'ij et la conduction des transistors T'ij et X'ij n'est pas nécessaire. Toutefois, à mesure que la capacité Cj se décharge, le transistor X'ij passe progressivement de l'état conducteur à l'état bloqué. Le bus B'j garde capacitivement son niveau logique haut. Il ne reste plus qu'à déterminer, à l'aide d'un amplificateur diffé- rentiel, les niveaux logiques des bus pour connaitre l'information contenue dans la cellule. Enfin, pour introduire une information dans la cellule Mij,il faut d'abord porter les bus Bj, B'j, aux niveaux logiques représen- tatifs de cette information, puis porter la ligne d'adressage Li au niveau logique "1". Dans ces conditions si, par exemple, les bus Bj et B'j sont respectivement aux niveaux "1" et "O" et les bornes Fij, F'ij aux niveaux "O" et "1" alors, les transistors T'ij et X'ij se trouvant en conduction, le bus B'j imposera son niveau à la borne F'ij et la bascule FFij changera d'état. Le transistor Xij se trouvant par contre à l'état bloqué, il ne peut pas contribuer au changement d'état de la bascule. Une mémoire à accès aléatoire comportant des cellules identiques à la cellule Mij, ces cellules étant disposées suivant m lignes et n colonnes, est représentée sur la figure 3. Les cellules d'une ligne sont reliées à une ligne d'adressage Li (i=1 à m) , et les cellules d'une colonne à deux bus Bj, B'j (j = 1 à n), ces lignes d'adressage. et ces bus étant connectés à un circuit de commande 10. Ce circuit comporte un bus LI d'adresse des lignes, un bus CO d'adresse des colonnes, un bus de données DO permettant d'introduire dans la mémoire, ou d'extraire de cette mémoire, une information, et un bus de commande COM permettant d'introduire dans le circuit un code déclanchant le processus de lecture ou d'écriture d'une information. Lorsque toutes les lignes d'adressage et tous les bus sont au niveau logique "O", les cellules de la mémoire se trouvent dans un mode non-opérationnel. Pour lire l'information contenue par exemple dans la cellule Mij, il faut d'abord introduire sur les bus LI et CO l'adresse de cette cellule, et sur le bus COM le code correspondant à l'opération de lecture. Le circuit 10 précharge au niveau logique "1" les bus Bj, B'j. Ensuite, ce circuit porte la ligne d'adressage Li au niveau logique "1", ce qui fait prendre aux bus Bj, B'j des niveaux lo- giques correspondant à l'information contenue dans la cellule Mij, sans risquer de modifier l'information des autres cellules de la ligne i puisque leur bascule est isolée des bus. Les niveaux lo- giques des bus Bj, B'j sont lus par un amplificateur différentiel dont la sortie fournit sur le bus DO l'information désirée. Le processus de lecture est finalement achevé par la remise au niveau logique "O" de la ligne d'adressage Li et des bus se trouvant au niveau logique "1". Pour entrer une information dans la cellule Mij il suffit, après avoir introduit l'adresse de la cellule et le code correspondant à l'écriture sur les bus LI, CO et COM, d'introduire encore sur le bus DO l'information devant être inscrite. Le circuit 10 porte alors les bus Bj, B'j aux niveaux logiques représentatifs de cette informa- tion, puis la ligne d'adressage Li au niveau logique "1" pour introduire l'information dans la cellule Mij, sans risquer de modifier l'information des autres cellules de la ligne i puisque ces cellules se trouvent isolées de leurs bus. Le processus d'écriture, qui ne fait pas usage du mode de précharge, est finalement achevé par la remise au niveau logique "0" de la ligne d'adressage Li et du bus se trouvant au niveau logique "1". Le circuit de commande 10 ne sera pas décrit car connaissant les signaux qu'il doit fournir, sa réalisation est à la portée de l'homme de l'art. Dans la mémoire selon l'invention l'opération d'écriture ne necessite aucune précharge, alors- que dans l'opération de lecture il n'y a lieu de ne précharger qu'un seul bus par bit de sortie. En comparaison, dans la mémoire connue de l'art antérieur, l'écriture et la lecture nécessitent la précharge de tous les bus. Il en résulte que, si le nombre de colonnes par bit de sortie est supérieur à 2, la mémoire selon l'invention présentera un avantage du point de vue consommation sur l'autre mémoire, et cet avantage sera d'autant plus marqué que n est grand. Il est bien entendu que l-a mémoire qui vient d'être décrite peut faire l'objet de modifications ou variantes, sans sortir du cadre de la présente invention. REVENDICATIONS 1. Mémoire statique comportant une pluralité de cellules identiques (Mij) disposées selon m lignes et n colonnes et aux- quelles sont connectés m lignes d'adressage (Li) et 2n bus d'infor- mation (Bj,B'j), chaque cellule étant constituée d'une bascule bistable (FFij) et de deux interrupteurs (Tij,T'ij) commandés par une ligne d'adressage et reliant, chacun, une borne de sortie de la bascule à un bus d'information, et caractérisée en ce que chaque cellule comporte, en outre, des moyens d'isolement (Xij,X'ij) connectés, chacun, entre une borne de sortie de la bascule (Fij) et le bus d'information (Bj) qui lui correspond et dont la conduction (respectivement le blocage) est contrôlée par l'état du bus (B'j) correspondant à la deuxième borne de sortie (F'ij) de la bascule. 2. Mémoire selon la revendication 1, caractérisée en ce qu'elle est réalisée en technologie CMOS, en ce que lesdites bascules sont formées, chacune, de deux inverseurs bouclés et en ce que lesdits interrupteurs et lesdits moyens d'isolement sont constitués, chacun, par un transistor MOS. 3. Procédé pour l'inscription d'une information dans une ou plusieurs cellules d'une ligne de la mémoire selon la revendication 1 ou la revendication 2, caractérisé en ce qu'il consiste à: - sélectionner ladite ligne d'adressage correspondante et commander la mise en conduction de tous lesdits interrupteurs des cellules connectées à ladite ligne; envoyer, sur le bus d'information de ladite ou desdites cellules à inscrire, l'information requise; et - isoler les autres cellules de la ligne sélectionnée en mettant leurs bus d'information dans un état logique propre à assurer le blocage desdits moyens d'isolement. 4. Procédé pour la lecture d'une information dans une ou plusieurs cellules d'une ligne de la mémoire selon le revendication 1 ou le revendication 2, caractérisé en ce qu'il consiste à: - commander le blocage des interrupteurs commandés par les lignes d'adressage de la mémoire; - précharger les bus d'information de ladite ou desdites cellules à lire; - sélectionner ladite ligne d'adressage correspondant à ladite ou auxdites cellules à lire; et - lire l'information de ladite ou desdites cellules à lire sur les bus d'information correspondants.