Brevet FR2748595A1 — publié le 19971114

Mémoire à accès parallèle. L'invention concerne les mémoires à accès parallèles. Elle concerne plus particulièrement les mémoires non volatiles programmables et effaçables électriquement (plus connues sous le nom de mémoires EEPROM), bien qu'elle puisse s'appliquer par extension à d'autres types de mémoires volatiles ou non volatiles. Le développement actuel des mémoires en circuit intégré de très grande capacité de mémorisation d'information (au sens du nombre d'infonnations mémorisées) s'est accompagné du désir d'augmenter les fi-équences de signal d'horloge pilotant le fonctionnement des systèmes dans lesquels ces mémoires sont utilisées, et par conséquent de la recherche de temps d'accès toujours plus courts au contenu des mots contenus dans ces mémoires. Par mot, on entend une entité physique dont le contenu est représentatif d'une information binaire codée sur B bits, B étant un nombre entier. Typiquement, ces mots seront donc formés de B cellules de mémorisation élémentaires, chaque cellule élémentaire étant constituée d'un circuit de mémorisation. Du point de vue du temps d'accès, les mémoires à accès parallèles sont les plus avantageuses. Dans ces mémoires, les adresses des mots à lire et/ou à écrire sont fournies sur un bus d'adresse parallèle et les mots lus et/ou écrits sont fournis et/ou reçus sur un bus de données parallèle. Ces mémoires ont par contre un encombrement et un poids de boitier plus importants que les mémoires à accès série, car elles nécessitent un nombre de broches de connexion plus important, et elles sont donc plus coûteuses. Comme on l'a vu, on cherche de plus en plus à accroître les fréquences de fonctionnement des systèmes, et donc des mémoires appelées à être mise en oeuvre dans les systèmes. En pratique, I'augmentation des fréquences de fonctionnement des mémoires pose des problèmes techniques, liés essentiellement au temps d'accès en lecture au contenu des mots. Par temps d'accès en lecture, on entend le délai, vis à vis de l'extérieur, entre le moment où l'adresse d'un mot est connue de la mémoire et le moment ou l'information binaire dont est représentatif le contenu des cellules du mot est disponible à l'extérieur de la mémoire. En pratique, le temps d'accès est limité essentiellement par le temps nécessaire pour enchaîner les deux étapes suivantes - le décodage de l'adresse reçue par la mémoire, c'est-à-dire le positionnement de divers dispositifs de commutation qui connectent un ou des circuits de lecture au mot dont le contenu est représentatif de l'information binaire à lire - le processus de lecture proprement dit c'est-à-dire l'extraction de l'information binaire, sous forme de signaux logiques à partir du mot lu (les cellules du mot ne stockent pas forcément une information logique directement exploitable, mais présentent plus généralement une caractéristique physique variable qu'un circuit approprié transformera en signal logique). La diminution du temps d'accès suppose une augmentation des vitesses de commutation lors du décodage et/ou une diminution des temps de réaction des circuits de lecture. Dans le cas où une solution est trouvée, on doit généralement supporter une consommation élevée, ce qui est peu souhaitable pour des mémoires souvent destinées à des applications portables, alimentées par des batteries, et dans lesquelles une consommation minimale est recherchée. En pratique, c'est donc souvent le temps d'accès maximal admissible envisagé qui détermine la fréquence de fonctionnement des systèmes dans lesquelles les mémoires sont utilisées. Un but de l'invention est de proposer une solution aux difficultés techniques cidessus en proposant un procédé de lecture et une organisation de mémoire à accès parallèle qui soit simple, de consommation réduite, et ayant un fonctionnement similaire, vis à vis de l'extérieur, au procédé de lecture et à l'organisation classiques d'une mémoire à accès parallèle de type connu. L'invention propose de lire simultanément plusieurs mots situés à des adresses produites par la mémoire à partir du décodage d'une adresse initiale fournie à la mémoire. Les informations binaires, dont les différents mots lus simultanément sont représentatifs, sont stockées et fournies en série à l'extérieur de la mémoire de manière sélective. On peut réduire ainsi le temps d'accès vu de l'extérieur de la mémoire. En effet, la mise en série et la sortie en série d'informations extraites en parallèle porte sur des données logiques et est donc réalisable en pratique à une fréquence plus élevée que l'opération de lecture proprement dite. Ainsi l'invention concerne un procédé de lecture du contenu de mots d'une mémoire de type parallèle, cette mémoire étant organisée matriciellement en mots, le contenu de chaque mot étant représentatif d'une information binaire, chaque mot étant accessible à une adresse particulière codée en binaire sur K bits, K nombre entier supérieur à un, les bits d'adresse étant reçus en parallèle par la mémoire sur un port parallèle d'entrée d'adresse. Le procédé comprend les étapes de suivante - réception d'une adresse initiale sur le port d'entrée d'adresse, - production de manière automatique d'un ensemble d'adresses distinctes à partir de l'adresse initiale, - lecture simultanée du groupe de mots correspondants aux adresses distinctes, et - fourniture en série sur un port parallèle de sortie de données des informations binaires extraites. L'invention concerne également une mémoire parallèle organisée en mots, le contenu de chaque mot étant représentatif d'une information binaire, chaque mot étant accessible à une adresse particulière codée en binaire sur K bits, K nombre entier supérieur à un, la mémoire comprenant un port parallèle d'entrée d'adresse pour recevoir les bits d'adresse en parallèle, un port parallèle de sortie de donnée pour fournir les informations binaires correspondantes aux contenus des mots adressés, des circuits de décodage des bits d'adresse reçus, des circuits de lecture des mots. La mémoire comprend P sous-plans mémoire auxquels sont associés des circuits de décodage de colonne et de ligne et des circuits de lecture, des circuits aptes à produire et à fournir, dans un mode de lecture dit de groupes, P adresses simultanément aux circuits de décodage à partir d'une adresse donnée de manière à permettre la lecture simultanée de P mots d'un groupe et des circuits recevant les P informations extraites à partir des P mots et les fournissant en série sur le port de sortie à une fréquence supérieure à la fréquence de lecture. D'autres avantages et particularités apparaîtront à la lecture de la description qui suit d'un exemple de réalisation de l'invention, à lire conjointement aux dessins annexés dans lesquels - la figure 1 représente schématiquement une mémoire selon l'invention, - la figure 2 représente un circuit de production de signaux d'horloge non recouvrants, - les figures 3a à 3c représentent des chronogrammes de signaux associés au circuit de la figure 2, - la figure 4 représente un circuit de production de signaux de commande utilisés dans la mémoire selon l'invention, - la figure 5 représente un autre circuit de production de signaux de commande utilisés dans la mémoire selon l'invention, - les figures 6a à 6d représentent des chronogrammes de signaux de commande associés au circuit de la figure 5, - la figure 7 représente schématiquement une cellule élémentaire d'un circuit de comptage, - la figure 8 représente la structure interne de la cellule de la figure 7, - la figure 9 représente un circuit de comptage réalisé à partir de cellules telles que celle illustrée sur les figures 7 et 8, - la figure 10 représente schématiquement une cellule élémentaire d'un circuit de production d'adresses, - la figure 1 1 représente la structure interne de la cellule de la figure 10, - la figure 12 représente un circuit de production d'adresses réalisé à partir de cellules telles que celle illustrée sur les figures 10 et 11, - la figure 13 représente schématiquement un circuit de multiplexage, - la figure 14 représente la structure d'une cellule de pile de sortie de la mémoire. La figure I représente une mémoire 1 qui pourra être par exemple une mémoire EEPROM réalisée suivant une technologie en semi-conducteur connue. On supposera que cette mémoire est organisée matriciellement en L lignes de M mots formés chacun de B cellules élémentaires. Classiquement L, M et B sont des nombres entiers égaux à des puissances de 2. On aura par exemple L = 128, M = 64 et B = 8. Cela représente une mémoire ayant une capacité de 8 kilo-mots de 8 bits, soit 64 kilo-bits. A chaque mot est associée une adresse ADR = ADRk- 1 ADRk-2 . . ADRl ADRO codée sur K bits, tel que typiquement on aura 2K = L * M. Dans la description, on supposera que K = 13, les sept bits de poids les plus forts (ADR12 ... ADR7) de l'adresse déterminant la ligne à laquelle on s'intéresse, et les six bits de poids les plus faibles (ADR6 ... ADRO) de l'adresse déterminant quel mot on souhaite lire dans la ligne considérée. La mémoire 1 peut être lue par groupes de P mots simultanément, à partir d'une adresse initiale reçue de l'extérieur. P est un nombre entier, de préférence une puissance de deux. Pour ce faire, on divise le plan mémoire en P sous-plans, chacun des P mots lus simultanément étant issu de l'un des sous-plans. Soit P = 2N avec N K. Comme on le verra, la lecture par groupes de P mots est mise en oeuvre par la modification de l'adressage des décodeurs de la mémoire en ce qui concerne N bits d'adresse donnés. Ces N bits sont de préférence des bits de poids contigus, de telle sorte que les mots lus simultanément soient à des adresses contiguës. En effet, bien que les mémoires soient généralement conçues de manière à permettre des échanges de manière aléatoire et asynchrone - souvent les mots contenus dans une mémoire ne sont pas lus (et écrits) un à un de manière totalement aléatoire mais plutôt par groupes de mots adjacents correspondants à des adresses consécutives, et - le plus souvent les mémoires sont utilisées de manière synchrone (les adresses sont le plus souvent fournies par un microcontroleur ou un microprocesseur et sont donc délivrées de manière synchrone avec la signal d'horloge de ce microcontrôleur ou microprocesseur lors de la lecture d'un ensemble de mots). En pratique, les mots lus simultanément dans un groupe et les groupes de mots lus successivement seront dans l'exemple situés à des adresses consécutives, ce qui facilite l'utilisation de l'invention et permet de limiter la consommation de la mémoire. L'utilisation est facilitée dans la mesure où il y a correspondance entre la lecture et l'écriture, les mots écrits lors d'un cycle d'écriture l'étant généralement à des adresses consécutives. La limitation de la consommation provient du fait qu'on limite les modifications de sélection dans les décodeurs de la mémoire quand on lit de manière successive des groupes de mots, les adresses d'un groupe de mots étant proches des adresses du groupe de mot lu précédemment. Comme on le verra, la mémoire 1 peut également être lue de manière séquentielle classique, c'est-à-dire mot par mot. La lecture d'un mot donné suppose alors classiquement la fourniture préalable par l'extérieur de la mémoire de son adresse. On pourra éventuellement mettre en oeuvre une mémoire selon l'invention ne permettant que la lecture par groupes de mots. Néanmoins, une mémoire comprenant les deux modes de lecture sera d'application plus large. D'autre part, si l'on souhaite réaliser une mémoire programmable, il est plus aisé en terme de complexité et donc de consommation de gérer une écriture mot par mot, ce qui implique de pouvoir fournir successivement les adresses des mots à écrire à la mémoire depuis l'extérieur. Dans l'exemple illustré, on a P = 2, c'est-à-dire N = 1. La lecture par groupes de deux mots est mise en oeuvre par la modification de l'adressage des décodeurs de la mémoire en ce qui concerne 1 bit d'adresse donné. On va considérer que ce bit est le bit de poids le plus faible ADRO. Pour K bits d'adresse ADR12 . . ADRI ADRO particuliers, si ADRO = 0 (adresse paire) on lit les mots situés aux adresses ADR12 .. ADRI O et ADR12 .... ADRI 1. Si ADRO = I (adresse impaire) on lit les mots situés aux adresses ADR12 .... ADR1 1 et (ADR12 .... ADR1 0) + 2. La mémoire 1 est formée de deux demi-plans ME et MO, chaque demi-plan étant formé de 128 lignes de 32 mots, le demi-plan ME correspondant aux adresses dont le bit de poids le plus faible est égal à O (demi-plan pair), et le demi-plan MO correspondant aux adresses dont le bit de poids le plus faible est égal à I (demi-plan impair). La mémoire I comprend - un port parallèle 2 d'entrée d'adresse pour recevoir en parallèle les adresses ADR des mots à lire, - un port parallèle 3 de sortie de donnée pour fournir en parallèle à l'extérieur les informations binaires, notées DATA7 ... DATAS , correspondantes aux adresses reçues - un compteur COUNT permettant de produire des adresses ABUF à partir d'une adresse initiale reçue par la mémoire, - un circuit DEMUX de démultiplexage recevant les adresses du compteur et fournissant aux demi-plans les adresses ADRE et ADRO des mots à lire dans ceux-ci, - deux circuits de décodage de ligne DECRE et DECRO associés respectivement au demi-plan ME et au demi-plan MO et permettant de sélectionner une ligne parmi les L de chacun des demi-plans, - deux décodeur de colonne DECCE et DECCO associés respectivement au demi-plan ME et au demi-plan MO et permettant de sélectionner une colonne parmi les M/P colonnes de chacun des demi-plans, - deux circuits de lecture SAE et SAO associés respectivement au demi-plan ME et au demi-plan MO, permettant d'extraire respectivement à partir d'une adresse donnée une information binaire DE du demi-plan ME et une information binaire DO du demi-plan MO, - un multiplexeur de sortie MUXS à P entrées et P sorties de types parallèles permettant de fournir deux informations binaires Di et Di+l, de telle sorte que Di DE et Di+l = DO ou Di = DO et Di+l = DE, - une pile de sortie BUFS recevant Di et Di+l en parallèle et fournissant en série Di et Di+l au port 3, - un circuit de commande CDB fournissant des signaux de commande aux différents circuits de la mémoire afin d'assurer une synchronisation adéquate dans le fonctionnement de la mémoire 1, à partir d'un signal d'horloge CKOEPAD de fréquence Fread et d'un signal MODE de commande de mode de lecture. On ne détaillera pas de manière exhaustive la constitution logique des circuits de décodage et de lecture, la réalisation de ceux-ci ne devant pas poser de problème particulier à un homme du métier. Par ailleurs, la mémoire pourra comporter d'autres circuits tels que des tampons de sortie permettant d'utiliser le port 3 sélectivement en entrée ou en sortie. des circuits d'alimentation fournissant des tensions adaptées aux opérations de lecture, d'écriture et d'effacement etc. La mémoire pourra être réalisée physiquement sous forme d'un circuit intégré individualisé comprenant seulement cette mémoire, ou bien sous forme d'une partie d'un circuit intégré comprenant d'autres éléments. On considérera ci-dessous que la mémoire est individualisée, les ports et de sortie étant alors reliés à des broches. On va maintenant décrire le fonctionnement de la mémoire 1 et d'éléments de cette mémoire liés fonctionnellement à la sélection des adresses des mots à lire et à l'extraction des informations correspondantes. Pour un signal X logique donné. on notera /X le signal inverse. Dans la mémoire 1, les lignes de mot associées à chaque demi-plan sont physiquement dissociées des lignes correspondantes de l'autre demi-plan. En effet, en mode de lecture par groupes de mots, si l'adresse la plus faible d'un des mots à lire est sur le dernier emplacement d'une ligne, alors l'autre mot devant être lu simultanément se trouve sur la ligne suivante. Il faut donc pouvoir lire deux mots se trouvant sur deux lignes distinctes. Comme on le verra, lorsque la mémoire est lue de manière classique, c'est-à- dire mot à mot, le décodage est classique. Le signal MODE est alors dans un état logique donné. On aura par exemple MODE = 0 dans l'exemple décrit. Quand la mémoire doit être lue par groupes, on a MODE = I. Le signal MODE peut par exemple être fourni à la mémoire par le biais d'une broche d'entrée dédiée du circuit. Alternativement, pour éviter de devoir rajouter une broche supplémentaire, on pourra utiliser une configuration particulière de broches classiques. Ce type de procédé est classique pour configurer une EEPROM dans un mode d'utilisation particulier. A titre d'exemple ce type de procédé est de manière standard utilisé dans un mode de protection de données dit "Data Software Protection". Il consiste à fournir à la mémoire une série d'adresse donnée, les signaux de commande de lecture et/ou d'écriture étant mis dans des états particuliers, la mémoire reconnaissant la configuration. En ce qui concerne le signal d'horloge CKOEPAD, il poulra également être fourni à la mémoire par le bais d'une broche dédiée. On pourra également utiliser une broche se trouvant de manière standard sur les mémoires, cette broche étant utilisée pour recevoir le signal CKOEPAD en mode de lecture par groupes. Ainsi, dans l'exemple illustré, on utilise une broche 4 de validation de sortie recevant un signal noté /OE (de Output Enable, signal qui de manière standard indique le sens de transfert des données entre la mémoire et l'extérieur, la mémoire étant maître si /OE o et esclave si /OE = 1). Autrement dit le port 3 de la mémoire est un port d'entrée si /OE = l et un port de sortie si /OE = 0. En mode de lecture de la mémoire on force bien sûr le mode maître. Dans la mémoire 1, lorsque le mode de lecture par groupes est initialisé. la dernière adresse présente sur le port 2 est mémorisée. Cette adresse constituera l'adresse initiale, c'est-à-dire l'adresse du premier mot du premier groupe de mots que l'on souhaite lire. Les informations extraites sont stockées dans la pile de sortie avant d'etre fournies à l'extérieur du circuit. L'adresse initiale mémorisée sert à initialiser le compteur COUNT dont la sortie contrôle le décodage. Ce compteur s'incrémente de +P à chacque cycle du signal CKOEPAD, par exemple sur les fronts descendants du signal. Ce signal d'horloge sert également à contrôler la sortie des P informations extraites en parallèle. Pour P = 2, la sortie est synchronisée sur les fronts montants et descendants du signal CKOEPAD. Si P est supérieur à 2, on créera par exemple un signal intente de synchronisation à partir d'un circuit multiplieur de fréquence recevant le signal CKOEPAD, les fronts de ce signal interne étant utilisés pour contrôler la sortie des informations. Soit Tacc le temps d'accès maximale en lecture de la mémoire 1. La valeur maximale pouvant etre choisie pour la fréquence Fread est égale à 1/Tacc. Le procédé de lecture par groupes se déroule de la manière suivante 1 - entrée en mode de lecture par groupes de mots. 2 - mémorisation de l'adresse initiale (ADR(0)) et lecture en parallèle des deux premiers mots (Di(0) et Du+ 1(0)) lus aux adresses ADR(0) et ADR(0)+ 1, et chargement des informations correspondantes dans la pile de sortie. 3 - fourniture à la mémoire du signal d'horloge CKOEPAD de fréquence F, avec F inférieure ou égale à Fread. 3a - incrémentation du compteur qui fournit ADR( l ) = ADR(0) + 2 / sortie de Di(0) / début de lecture de Di(l) et Di+l(l) aux adresses ADR(l) et ADR(l)+l, 3b - décalage de la pile de sortie / sortie de Di+l(0) 3c - fin de lecture de Di(l) et Di+l(l) / incrémentation du compteur qui foumit ADR(2) = ADR(I) + 2 / sortie de Di(l) / début de lecture des données Di(2) et Di+l(2), 3d - décalage de la pile de sortie / sortie de Di+l(l). etc. On voit qu'à partir de l'étape 3a, la fréquence de sortie des infonnations est P * F, c'est-à-dire à 2 * F. Autrement dit, si on considère F = Fread le temps d'accès aux informations vu de l'extérieur est Tacc/P, c'est-à-dire Tacc/2. On va maintenant décrire en détail un exemple préféré de réalisation de la mémoire 1 permettant de mettre en oeuvre le procédé ci-dessus. On va tout d'abord décrire des circuits permettant de produire des signaux de contrôle de la mémoire, avant de décrire les circuits traitant les adresses et les informations extraites. La figure 2 illustre un circuit 10 permettant de produire des signaux d'horloge non recouvrants à l'état haut à partir d'un signal d'horloge. Un tel circuit sera utilisé dans le circuit de commande CDB de la mémoire 1, comme on le verra ci-après. Il comprend une entrée l l pour recevoir un signal d'horloge CLK (illustré sur la figure 3a) et deux sorties 12 et 13 pour produire des signaux de sortie CKOUTI et CKOUT2 (illustrés respectivement sur les figures 3c et 3b). Une porte logique 14 de type NON~OU à deux entrées reçoit sur une entrée le signal complémentaire du signal CLK (produit par un inverseur 16) et reçoit sur son autre entrée le signal CKOUTI. Une porte logique 15 de type NON~OU à deux entrées reçoit sur une entrée le signal CLK et reçoit sur son autre entrée le signal CKOUT2. Le signal CKOUT2 est produit par le biais de deux inverseurs 17 et 18 montés en série en sortie de la porte logique 14. Le signal CKOUTI est produit par le biais de deux inverseurs 19 et 20 montés en série en sortie de la porte logique 15. Les portes logiques 14, 15 et 16 permettent de produire des signaux de sortie n'étant pas simultanément à l'état haut. Les inverseurs 17, 1 8. 1 9 et 20 permettellt de garantir un non-recouvrement en introduisant un délai entre le passage à l'état bas de l'un des signaux de sortie et la montée à l'état haut de l'autre signal. Soit S1 et S2 les signaux produits par les portes 14 et 15. Supposons que CLK soit à l'état bas. S1 est à l'état bas, donc CKOUT2 est à l'état bas donc S2 monte à l'état haut et CKOUTl est à l'état haut également. Si un front montant apparaît sur le signal CLK, le signal S2 passe à l'état bas. Puis le signal CKOUTI passe lui aussi à l'état bas. Cela entraîne la montée à l'état haut de S1 puis la montée du signal CKOUT2. Si ultérieurement le signal CLK repasse à l'état bas, le signal SI va lui aussi passer à l'état bas. Après un délai, induit par les inverseurs 1 7 et 18, le signal CKOUT2 repasse à l'état bas. Cela entraîne la montée de S2 et par suite la montée de CKOUTI. La figure 4 illustre un circuit 30 permettant de produire un signal LOAD de commande de chargement du compteur COUNT. Un tel circuit sera utilisé dans le circuit de commande CDB de la mémoire 1, comme on le verra ci-après. il comprend deux entrées 31 et 32 pour recevoir respectivement des signaux LATCH et MODE de commande, et deux sorties 33 et 34 pour fournir respectivement les signaux LOAD et /LOAD. Les signaux LATCH et MODE sont fournis, après inversion du signal MODE dans un inverseur 36, à une porte logique 35 à deux entrées de type NON~ET. La sortie 34 est reliée à la sortie de la porte 35, et la sortie 33 est reliée à la sortie de la porte 35 par le biais d'un inverseur 37. Quand MODE = 0 et LATCH = 1, on a LOAD = 1. Quand MODE = 1 on a LOAD = 0. Comme on l'a vu précédemment, le signal MODE est représentatif du mode de lecture choisi. La figure 5 illustre un exemple de réalisation d'un circuit mis en oeuvre dans le circuit CDB de commande. Ce circuit 40 produit sur des sorties 43 et 44 des signaux SET et CMD de commande (illustrés sur les figures 6e et 6f) à partir des signaux CKOEPAD et MODE (illustrés sur les figures 6a et 6b) reçus sur des entrées 42 et 41 de ce circuit 40. 11 comprend: - une porte logique 45 de type NON~OU à deux entrées recevant les signaux MODE et CKOEPAD, le signal produit en sortie de cette porte étant inversé dans un inverseur 46 qui produit un signal IOE (illustré sur la figure 6c), - une porte logique 47 de type NON~ET à deux entrées recevant les signaux MODE et CKOEPAD en entrée, - une porte logique 48 de type OU~EXCLUSIF à deux entrées ayant ses entrées reliées à la sortie de la porte logique 47, l'une directement et l'autre par le biais d'un circuit à retard 49 formé par exemple de deux inverseurs et d'une capacité, - une porte logique 50 de type NON~ET à trois entrées ayant une première entrée recevant le signal IOE, une deuxième entrée reliée à la sortie de la porte 47 et une troisième entrée reliée à la sortie de la porte 48 par le biais d'un inverseur 51. Cette porte produit le signal CKIN = /SET, le signal SET étant produit par un inverseur 52 à partir du signal /SET. Le signal CKIN est illustré sur la figure 6d. - une bascule RS 53 de type NON~OU recevant le signal SET sur son entrée d'initialisation, et recevant le signal complémentaire de MODE (produit par un inverseur 54) sur son entrée de réinitialisation, - une porte logique 55 de type NON~ET à trois entrées ayant une première entrée reliée à la sortie de la porte 48 par le biais de l'inverseur 51, une deuxième entrée recevant le signal IOE, et une troisième entrée reliée à la sortie inverseuse de la bascule 53 par le biais d'un inverseur 56. Cette porte 55 produit le signal CMD par le biais d'un inverseur 57. Le fonctionnement est le suivant. Supposons que MODE = 0. La porte 45 produit le signal /CKOEPAD et on a IOE = CKOEPAD. Le signal IOE est ici un signal interne de validation de sortie. Il sera utilisé pour configurer le port 3 en port d'entrée (IOE = 0) ou en port de sortie (IOE = 1). En lecture par groupes, on maintient le signal IOE à l'état haut en imposant MODE = l. Le port 3 est donc utilisé uniquement en port de sortie. Cet production de lOE est liée au fait que l'on utilise une broche dédiée de manière standard à une autre fonctionnalité que la réception d'un signal d'horloge. Si une broche spécifique est dédiée à la réception du signal d'horloge CKOEPAD. on adaptera de manière évidente le circuit décrit. Supposons que CKOEPAD = 1. On a alors IOE = 1. La porte 47 produit un signal logique haut qui est fourni aux deuxième et troisième entrées de la porte 50. En conséquence, on a CKIN = l et SET = Comme on a MODE = SET = 0, la porte 55 reçoit un signal bas sur sa troisième entrée. De ce fait, on a CMD = 0. Pour passer en lecture par groupes, on impose MODE = 1. Le signal lOE est donc maintenu à l'état logique haut. Si un front descendant apparaît dans le signal CKOEPAD la porte 47 produit un état logique bas. Cet état se propage jusqu'à la troisième entrée de la porte 50 par le biais de la première entrée de la porte 48. En conséquence, le signal CKIN passe à l'état bas et le signal SET passe à l'état haut. La porte 55 reçoit alors un signal logique haut sur sa troisième entrée, mais comme le signal reçu sur sa première entrée est passé à ltétat bas, le signal CMD reste à 0. Quand le signal logique haut produit par la porte 47 s'est propagé jusqu'à la deuxième entrée de la porte 48, cette porte 47 produit un signal à l'état logique bas. En conséquence, le signal SET repasse à l'état bas. La durée de l'impulsion positive du signal SET est dimensionnée par le circuit 49. Quand un front montant apparaît dans le signal CKOEPAD. le signal produit par la porte 47 passe à l'état bas. La sortie de la porte 48 passe alors à l'état haut. et ce tant que l'état bas ne s'est pas propagé au travers du circuit 49. En conséquence, le signal CMD passe à l'état haut. Quand la sortie de la porte 48 repasse à l'état bas, la signal CMD revient également dans cet état. La figure 7 ill AO pour fournir un bit d'adresse ABUFi, une sortie CO pour fournir un signal CARYOUT, et une entrée parallèle CLOCKS de commande pour recevoir des signaux d'horloge CKI, /cl1, CK2 et /CK2 et les signaux LOAD et /LOAD. On produira des signaux CKI et CK2 non recouvrants à l'état haut en utilisant le circuit 10 de telle manière que CKL = CKIN, CKOUTl = CKl et CKOUT2 = CK La figure 8 illustre la structure de la cellule 60. L'entrée AI est reliée à un inverseur 61 par le biais d'un interrupteur CMOS 62 contrôlé par les signaux LOAD et /LOAD, de telle sorte que l'interrupteur est lérmé (c'est-à-dire passant) si LOAD = 1 et ouvert si LOAD = 0. La sortie de l'inverseur 61 est reliée par le biais d'un interrupteur CMOS 63. contrôlé par les signaux CK2 et /CK2, à l'entrée d'une cellule de mémorisation formée de deux inverseurs 64 et 65 montés tête-bêche. L'interrupteur 63 est fermé si CK2 = 1 et ouvert sinon. La sortie AO est reliée à la sortie de la cellule de mémorisation par le biais de deux inverseurs 66 et 67 montés en série. La sortie de la cellule de mémorisation est d'autre part reliée à une entrée d'une porte logique 68 de type OU~EXCLUSIF à deux entrées, et à une entrée d'une porte logique 69 de type NON~ET à deux entrées. Les deuxièmes entrées des portes 68 et 69 sont reliées à l'entrée CI. La sortie de la porte 68 est reliée à l'entrée de l'inverseur 61 par le biais d'un interrupteur CMOS 70 contrôlé par les signaux CKl et /CKI. L'interrupteur 70 est fermé si CKI = l et ouvert sinon. Enfin, la sortie CO est reliée à la sortie de la porte 69 par le biais d'un inverseur 71. Il existe deux modes de fonctionnement de la cellule 60, selon que l'on soit en lecture classique (mot par mot) ou en lecture par groupes. En mode de lecture classique, on a l'interrupteur 63 fermé et l'interrupteur 70 fermé. En conséquence, on a ABUFi = ADRi. La cellule est transparente. En mode de lecture par groupes, on peut distinguer deux phases. Tout d'abord, on ferme les interrupteurs 62 et 63 de manière à mémoriser l'adresse initiale de lecture, notée ADRi. Puis on ouvre ces interrupteurs et on ferme par la suite l'interrupteur 70. On réalise alors une addition avec retenue à l'aide des portes 68 et 69. Ces portes produisent respectivement 0 et 0 si ADRi = CARRYIN 0, 1 et O si ADRi = l et CARRYIN = 0 ou si ADRi = 0 et CARRYIN = l, 0 et I si ADRi = CARRYIN = 1. Le résultat est mémorisé dans la cellule de mémorisation en fermant l'interrupteur 63, après avoir fermé l'interrupteur 70 pour éviter tout rebouclage. La figure 9 illustre une structure de compteur COUNT permettant de mettre en oeuvre l'invention. Il comporte un nombre de cellules identique au nombre de bits d'adresse utilisé pour accéder aux mots mémorisés dans la mémoire. c'est-à-dire treize dans l'exemple illustré. Les treize cellules 600 à 612 sont montées en parallèle chacune des cellules (600 + i) recevant le i-ième bit d'adresse ADRi, et fournissant une donnée ABUFi. Les entrées CI des cellules 602 à 612 sont reliées aux sorties CO des cellules 601 à 611. La sortie CO de la cellule 612 n'est reliée à rien. L'entrée CI de la première cellule 600 reçoit un 0 logique. L'entrée CI de la cellule 601 reçoit un signal COUNTUP. Quand on est en mode de lecture mot par mot, on a COUNTUP = 0. En conséquence, les signaux CARRYIN reçus et les signaux CARRYOUT fournis par les cellules sont tous à l'état logique 0. De ce fait, pour chaque cellule on a ABUFi = ADRi. Autrement dit, le compteur est équivalent à une bascule de mémorisation dont le chargement est contrôlé par le signal LOAD. Quand on est en mode de lecture par groupes de mots. on a MODE = l. Le signal COUNTUP présente des transitions à la fréquence F. De la sorte, à chaque front montant de COUNTUP, la cellule 601 va modifier son contenu en additionnant l à son contenu courant, ce qui revient à additionner 2 à l'adresse précédemment mémorisée si on considère l'ensemble des cellules. Si cette addition se traduit par la présence d'une retenue à 1, cette retenue est propagée vers la cellule suivante 602 et ainsi de suite. Le circuit DEMUX de démultiplexage fournit les adresses (ADRO 12 ADRO0, ADREl2 .... ADRE0) des mots à lire aux circuits de décodage associés aux demi-plans. Sa fonction est d'adapter les adresses fournies aux décodeurs au caractère pair ou non de l'adresse initiale de lecture, quand la mémoire est en mode de lecture par groupes. Si cette adresse initiale est paire, les sous-ensembles formés des bits ABUF l à ABUFl2 fournis par le compteur COUNT correspondent aux adresses effectives des mots à lire pour les deux demi-plans. Si cette adresse initiale est impaire, les sous-ensembles formés des bits ABUFI à ABUFl2 ne sont valides que pour les adresses des mots à lire dans le demi-plan impair. Les mots à lire dans le demi-plan pair se situent aux adresses ADORE . ADRI = ABUFl2 .... ABUF1 + 1 (ou bien encore aux adresses ABUEl2 ABUFO + 2). Autrement dit, pour une lecture simultanée de deux mots situés chacun dans un des demi-plans, les bits ADREl2 .. . ADREI et ADRO12 . ADROl à fournir aux décodeurs sont alors différents. Concernant ADRE0 et ADRO0, il n'est pas nécessaire en toute rigueur de les fournir aux décodeurs, chacun des demi-plan correspondant à une seule valeur donnée de bit d'adresse de poids le plus faible. On pourra par contre tenir compte de la valeur de ce bit d'adresse lors d'une lecture classique, pour inhiber la lecture des demi-plans non concernés, de manière à diminuer la consommation du circuit. Le circuit DEMUX est par exemple formé de cellules telles que la cellule 80 de la figure 10. La cellule de base 80, illustrée sur la figure 10, comprend une entrée IN pour recevoir un signal ABUFi, une entrée CDE pour recevoir le signal MODE, des sorties ADE et ADO pour fournir des signaux ADREi et ADROi, des entrées Cl et C2 pour recevoir deux signaux CARRY1 et CARRY2, et une sorte C3 pour fournir un signal CARRY3. La structure interne de la cellule 80 est illustrée sur la figure 11. Elle comprend une porte logique 81 de type NON~OU à deux entrées recevant le signal ABUFi sur une entrée et le signal CARRY1 sur l'autre entrée. Un inverseur 82 dont l'entrée est reliée à la sortie de la porte 81 produit le signal ADREi. Une porte logique 83 de type NON~ET à trois entrées reçoit le signal ADREi sur une entrée. Une autre entrée reçoit le signal MODE. La dernière entrée reçoit le signal CARRY2. Cette porte 83 produit le signal CARRY3 par le biais d'un inverseur 84. Enfin, la sortie ADO est reliée à l'entrée IN. On a donc ADOi = ABUFi. La figure 12 représente le circuit DEMUX. Il comprend un ensemble de cellules 800 à 812 mises en parallèle. Le nombre de cellules est identique au nombre de bits utilisés pour adresser les mots de la mémoire, c'est-à-dire treize dans l'exemple illustré. Les cellules 800 à 812 reçoivent les signaux ABUFO à ABUFl2 sur leurs entrées IN et le signal MODE sur leurs entrées CDE. Les cellules 801 à 812 ont leurs entrées Cl et C2 reliées aux sorties C3 des cellules 800 à 811. La cellule 800 reçoit un 0 logique sur son entrée Cl et le signal BUFO sur son entrée C2. En mode de lecture mot par mot, les signaux CARRY3 produits par les cellules sont tous à l'état logique 0, le signal MODE étant lui-même à l'état logique 0. Les adresses fournies aux décodeurs par le circuit DEMUX sont donc identiques à celles qu'il reçoit. Le circuit DEMUX est alors transparent, si ce n'est qu'il induit un léger retard du au temps de traversée des portes logiques qui le constituent. En mode de lecture par groupes, on distinguera suivant que l'adresse initiale est paire ou impaire. Si l'adresse initiale est paire, on a ABUFO = 0. Par conséquent, les signaux CARRY3 produits par les cellules seront tous à l'état logique 0. De même que dans la lecture mot à mot, le circuit DEMUX est alors transparent. Si l'adresse initiale est impaire, on a ABUFO = 1. La cellule 800 va donc produire un signal CARRY3 = 1 qui est fourni à la cellule 801, le signal ADRE0 étant alors à 1. Cette cellule 801 va produire CARRY3 = 1 et ADREI = 1 si ABUFI = - 1, et CARRY3 = O et ADREI = 1 si ABUFI = 0. De même que dans le cas du compteur on propage la retenue dans les cellules tant que les signaux ABUFi reçus sont à l'état logique haut. L'association du compteur COUNT et du circuit DEMUX permet de lire successivement des groupes de mots, les mots d'un groupe étant eux lus simultanément. Cette configuration est intéressante si le nombre de mots pour un groupe est faible. Si le nombre de sous-plans est grand, on pourra éventuellement n'utiliser que le circuit DEMUX et ne lire que groupe par groupe (comme on lit mot par mot de manière classique). Cette possibilité se traduira par contre par un encombrement et une consommation importants. La figure 13 illustre schématiquement la composition du bloc de multiplexage de sortie. Ce bloc comprend deux multiplexeurs MUXSE et MUXSO à entrées et sorties parallèles recevant chacun les informations DE et DO, et fournissant respectivement en sortie des données Di et Di+l. Ces multiplexeurs sont commandés par le signal ABUFO de telle sorte que si ABUFO = 0 alors Di = DE et Di+l DO, et que si ABUFO = 1 alors Di = DO et Di+l = DE. Les données Di et Di+l sont reçues par la pile de sortie. Si l'adresse initiale de lecture en mode de lecture par blocs est dans le demi-plan pair alors, pour chaque lecture de mot, Di est issue du demi-plan pair et Di+l est issue du demi-plan impair. Si cette adresse initiale est dans le demi-plan impair alors. pour chaque lecture de mot, Di est issue du demi-plan impair et Di+l est issue du demi-plan pair. La pile de sortie est une pile statique permettant, à partir de la réception simultanée des données Di et Di+l à une fréquence F, de fournir en série successivement les données Di et Di+l à une fréquence 2 * F. Le circuit de sortie est formé de cellules de base telle que celle illustrée sur la figure 14, qui permet de traiter deux bits (un par donnée à sortir). La cellule 90 comprend deux demi-cellules 90a et 90b montées en série. La demi-cellule 90 a comprend une porte logique 91 de type NONOU à deux entrées recevant les signaux Di et /SET sur ses entrées. Une porte logique 92 de type NON~OU à deux entrées reçoit les signaux /Di et /SET sur ses entrées. Une porte logique 93 de type NON~ET à deux entrées a une de ses entrées reliée à la sortie de la porte 91 par le biais d'un inverseur 94. Une porte logique 95 de type NONET à deux entrées a une de ses entrées reliée à la sortie de la porte 92 par le biais d'un inverseur 96. La deuxième entrée de la porte 93 (respectivement de la porte 95) est reliée à la sortie de la porte 95 (respectivement de la porte 93). La sortie de la porte 95 correspond à la sortie de la demi-cellule 90a. Cette sortie fournit un signal Douti. La demi-cellule 90b comprend une porte logique 101 de type NON~OU à deux entrées recevant les signaux Di+l et /SET sur ses entrées. Une porte logique 1 02 de type NON~OU à deux entrées reçoit les signaux /Ditl et /SET sur ses entrées. lJne porte logique 103 de type NON~ET à deux entrées a une de ses entrées reliée à la sortie de la porte 101 par le biais d'un inverseur 104. Une porte logique 105 de type NON~ET à deux entrées a une de ses entrées reliée à la sortie de la porte 102 par le biais d'un inverseur 106. La deuxième entrée de la porte 103 (respectivement de la porte 105) est reliée à la sortie de la porte 105 (respectivement de la porte 103). La sortie de la porte 103 correspond à la sortie de la demi-cellule 90b. La sortie de la demi-cellule 90b est reliée par le biais d'un interrupteur MOS 98 à la deuxième entrée de la porte 95. Cet interrupteur est commandé par les signaux CMD et /CMD, de telle sorte que cet interrupteur est fermé (c'est-à-dire passant) si CMD = 1 et ouvert sinon. En terme de fonctionnement, la cellule fonctionne de la manière ci-dessous. Les ensembles formés par les portes 93 et 95 d'une part, et 103 et 105 d'autre part, ont pour fonction de mémoriser les états logiques des signaux Di et Di+l pour une lecture donnée. Si SET = 1, les portes 91 et 92 (respectivement 101 et 102) fournissent les signaux /Di et Di (respectivement /Di+l et Di+l). Les premières entrées des portes 93 et 95 (respectivement 103 et 105) reçoivent donc les signaux Di et /Di (respectivement Di+l et /Di+l). Les portes 93 et 95 (respectivement 103 et ]05) fournissent donc les signaux /Di et Di (respectivement /Di+l et Di+1). Si SET = 0, les portes 91, 92, 101 et 102 fournissent un 0 logique. Les premières entrées des portes 93, 95, 103 et 105 reçoivent donc un 1 logique. Les portes 93 et 95, et 103 et 105, fournissent alors des signaux complémentaires : soit 0 et 1, soit 1 et 0, selon l'état de leurs deuxièmes entrées au moment où le signal SET passe à l'état bas. Quand le signal SET passe à l'état haut, les demi-cellules sont isolées l'une de l'autre (on a CMD = 0). Les signaux Di et /Di+l, sont alors mémorisés dans les cellules de mémorisation formées pour chacune des demi-cellules de deux portes logiques de type NON~ET montées tête-bêche. Puis le signal SET passe à l'état bas. Les signaux Di et /Di+l sont alors maintenus dans les cellules de mémorisation. Le signal Di est lui disponible en sortie de la mémoire. On a Douti = Di. Quand le signal CMD passe à l'état haut. la donnée IDi+l est transférée de la demi-cellule 90b vers la demi-cellule 90a et inversée par la porte 95. La cellule de mémorisation de la demi-cellule 90a stocke alors le signal Di+l, ce signal étant disponible en sortie de la mémoire. On a Douti = DiTl Puis le signal CMD passe à l'état bas, isolant ainsi les demi-cellules 90a et 90b l'une de l'autre. On peut alors mémoriser dans ces demi-cellules les données lues au cycle de lecture suivant. La pile de sortie comprendra autant de cellules 90 montées en parallèle qu'il y aura de bits par donnée à sortie. Dans l'exemple envisagé. la pile comprendra huit cellules. REVENDICATIONS 1 - Procédé de lecture du contenu de mots d'une mémoire (1) de type parallèle, cette mémoire étant organisée matriciellement en mots, le contenu de chaque mot étant représentatif d'une information binaire (DE, DO), chaque mot étant accessible à une adresse particulière codée en binaire sur K bits, K nombre entier supérieur à un, les bits d'adresse étant reçus en parallèle par la mémoire sur un port parallèle (2) d'entrée d'adresse, caractérisé en ce qu'il comprend les étapes suivantes - réception d'une adresse initiale sur le port (2) d'entrée d'adresse. - production de manière automatique d'un ensemble d'adresses distinctes (ADRE, ADRO) à partir de l'adresse initiale, - lecture simultanée du groupe de mots correspondants aux adresses distinctes, et - fourniture en série sur un port parallèle (3) de sortie de données des informations binaires extraites. 2 - Procédé selon la revendication 1, caractérisé en ce qu'on produit successivement par incrémentation un ensemble de groupes d'adresses distinctes, les groupes d'adresses étant produits soit à partir de l'adresse initiale. soit à partir d'une adresse d'un groupe d'adresses précédemment produit. 3 - Procédé selon l'une des revendications 1 ou 2. caractérisé en ce que les adresses distinctes produites sont contiguës. 4 - Mémoire parallèle (1) organisée en mots, le contenu de chaque mot étant représentatif d'une information binaire, chaque mot étant accessible à une adresse particulière codée en binaire sur K bits, K nombre entier supérieur à un, la mémoire comprenant un port parallèle (2) d'entrée d'adresse pour recevoir les bits d'adresse en parallèle, un port parallèle (3) de sortie de donnée pour fournir les informations binaires correspondantes aux contenus des mots adressés. des circuits de décodage des bits d'adresse reçus, des circuits de lecture des mots, caractérisée en ce qu'elle comprend - P sous-plans mémoire (ME, MO) auxquels sont associés des circuits (DECCE, DECCO, DECRE, DECRO) de décodage de colonne et de ligne et des circuits (SAE, SAO) de lecture, - des circuits (COUNT, DEMUX) aptes à produire et à fournir. dans un mode de lecture dit de groupes P adresses (ADRE, ADRO) simultanément aux circuits de décodage à partir d'une adresse donnée de manière à permettre la lecture simultanée de P mots d'un groupe et - des circuits (MUXS, BUFS) recevant les P informations extraites à partir des P mots et les fournissant en série sur le port (3) de sortie à une fréquence supérieure à la fréquence de lecture. 5 - Mémoire selon la revendication 4, caractérisée en ce qu'elle comprend un circuit (COUNT) de comptage apte à mémoriser une adresse et à produire périodiquement, à partir d'un signal d'horloge (CKOEPAD), une adresse (ABUF) à partir de l'adresse mémorisée, cette adresse produite étant une adresse d'un mot parmi P mots lire simultanément. 6 - Mémoire selon la revendication 5, caractérisée en ce qu'elle comprend un circuit (DEMUX) de démultiplexage recevant l'adresse (ABUF) produites par le circuit de comptage, et produisant P-l adresses correspondant aux P-l mots du groupe de mots à lire dont l'un des mots a pour adresse l'adresse fournie par le circuit de comptage, l'adresse produite par le circuit de comptage et les P- I adresses produites (ADRE, ADRO) étant fournies aux P sous-plans. 7 - Mémoire selon l'une des revendications 4 à 6 caractérisée en ce qu'elle comprend: - un circuit de multiplexage de sortie (MUXS) apte à recevoir les P informations (DE, DO) extraites à partir de la lecture simultanée de P mots et de produire P données (Di, Di+l) telles que ces données correspondent aux informations extraites rangées par adresses croissantes, et - une pile de sortie (BUFS) recevant les P données en parallèle et les fournissant en série à une fréquence P fois supérieur à la fréquence de leur production par le circuit de multiplexage de sortie.