Brevet FR2727558A1 — publié le 19960531

Interface entre une mémoire comportant un nombre donné d'entrées d'adresse et un processeur prévu avec moins de sorties d'adresse, processeur et mémoire ainsi équipés. L'invention concerne une interface prévue entre une mémoire de données comportant un nombre donné d'entrées de bit d'adresse et un processeur qui est prévu avec un nombre inférieur de sorties de bit d'adresse et qui dispose de sorties de bit programmables dont au moins certaines sont susceptibles d'être utilisées pour compléter l'adressage. Elle concerne aussi les processeurs et mémoires équipés d'une telle interface. Des processeurs, notamment des processeurs de traitement de signaux, sont dotés d'accès organisés d'une manière standardisée leur permettant de communiquer avec des mémoires vives, classiquement dites mémoires RAM, ou des mémoires mortes, dites ROM. De telles mémoires et de tels processeurs sont le plus souvent interconnectés par des liaisons multifilaires de transmission de données permettant par exemple une transmission de huit ou seize bits en20 parallèle et des liaisons d'adressage pour mémoires externes à "p" fils, "p" étant par exemple égal à seize. Or il existe des mémoires, par exemple des mémoires à lecture seule électriquement inscriptibles et effaçables, dites mémoires EEPROM FLASH, qui sont susceptibles de25 comporter un nombre "n" d'entrées de bit d'adresse supérieur au nombre "p" de sorties de bit d'adresse pour mémoire externe de certains processeurs disponibles et en particulier de certains processeurs de traitement de signaux. Tel est le cas si l'on associe des mémoires de type30 dit EEPROM FLASH comportant dix-neuf entrées de bit d'adresse à un processeur de traitement de signal ne fournissant normalement qu'un signal d'adresse sur seize bits soit donc via seize sorties. Comme il est connu ces mémoires, de type EEPROM FLASH,35 présentent l'avantage d'être électriquement effaçables, comme le sont les mémoires, de type RAM, et de conserver par elles-mêmes les données que l'on y stocke même si elles ne sont plus alimentées, comme le font les mémoires de type ROM et contrairement aux mémoires de type RAM exploitées sans alimentation de sauvegarde. Il existe donc un certain nombre d'applications o l'exploitation de ces mémoires EEPROM FLASH est envisagée à des fins de stockage temporaire en statique, sans risque de perte, d'autant plus que ces mémoires sont réalisées sous la forme de circuits modulaires disposant d'une grande capacité en matière de stockage. Tel est par exemple le cas dans les applications relatives aux télécommunications o il est utile de pouvoir stocker, sans risque de perte dû à une absence d'alimentation en énergie électrique en cours de stockage, des informations numériques classiquement conservées sous forme d'octets pour un temps déterminé. Il est ainsi possible d'envisager l'exploitation de ces mémoires pour stocker les messages vocaux au niveau de répondeurs enregistreurs téléphoniques individuels ou partagés. Toutefois les mémoires, de type EEPROM FLASH, qui ont des capacités suffisamment intéressantes, par exemple une capacité de 512 kilo-octets, exigent des possibilités d'adressage étendues de la part des processeurs ayant à les commander, les divers octets de ces mémoires effaçables par25 blocs de tailles prédéterminées étant individuellement adressables en écriture ainsi qu'en lecture. Or si les processeurs peuvent ordinairement adresser des capacités de mémoire de cet ordre, ils ne sont souvent pas prévus pour effectuer de tels adressages pour des mémoires30 externes ayant de telles capacités et les utilisateurs n'ont généralement pas la possibilité de modifier les composants que constituent ces processeurs pour obtenir les possibilités d'adressage qu'ils souhaitent. L'invention propose donc une interface entre mémoire et35 processeur permettant des échanges de données par l'intermédiaire d'une liaison, pour mémoire qui stocke les données reçues sous la forme d'octets et qui comporte "n" entrées de bit d'adresse permettant un adressage de chaque octet au moyen d'une combinaison caractéristique de "n" bits, et pour processeur qui comporte un nombre "p" de sorties de bit d'adresse inférieur à "n" et un nombre "q" de sorties de bit programmables au moins égal à "n-p". Selon une caractéristique de l'invention, l'interface comporte un circuit logique binaire relié à une sortie de bit de sélection d'octet "byte-s", à une sortie de bit de commande d'écriture-lecture "R/W" en mémoire et à l'une des "q" sorties de bit programmables dûment programmée du processeur pour produire un bit qui est destiné à l'entrée de bit d'adresse de poids le plus faible de la mémoire et15 qui est défini par la relation AI0 = R/W & byte-s OU R/W & I/00, en ce qu'elle relie les "p" entrées de bit d'adresse de la mémoire, qui succèdent par ordre de poids croissant à l'entrée de bit d'adresse de poids le plus faible, aux "p" sorties de bit du processeur prises dans le même ordre et en20 ce qu'elle relie les "n-p-1" entrées restantes de bit d'adresse de mémoire ayant les poids les plus forts à autant de sorties de bit programmables dûment programmées du processeur. Selon une caractéristique de l'invention, le circuit logique25 qu'elle comporte est aussi relié à une sortie de bit d'attaque (strb) du processeur et génère aussi un bit de commande d'écriture défini par la relation WR = strb & R/W & byte-s et un bit d'autorisation de sortie défini par la relation OE = strb & R/W pour des entrées correspondantes de30 la mémoire. L'invention propose aussi une variante d'interface pour mémoire composée d'au moins deux unités identiques en parallèle qui disposent chacune de "n" entrées d'adresse de bit, d'une entrée de bit de commande d'écriture-lecture, d'une entrée de bit d'autorisation de sortie et d'une entrée de bit de sélection d'unité. Selon une caractéristique de l'invention, le circuit logique qu'elle comporte est relié en parallèle aux différentes entrées de bit de poids faible, de bit d'écriture et de bit d'autorisation de sortie de chacune des unités, l'entrée de sélection propre à chacune des unités étant reliées à une sortie différente de bit de donnée du processeur qui est programmée à cet effet. L'invention propose encore un processeur et une mémoire caractérisés en ce qu'ils comportent l'un ou l'autre une interface telle que définie ci-dessus. L'invention, ses caractéristiques et ses avantages sont précisés dans la description qui suit en liaison avec la figure évoquée ci-dessous. La figure unique présente un schéma d'interface pour processeur et mémoire, cette dernière comportant un nombre d'entrées d'adresse qui est supérieur au nombre de sorties d'adresse que comporte le processeur.20 L'agencement présenté en figure unique est destiné à permettre la commande d'une mémoire 1 à partir d'un processeur 2, lorsque la mémoire 1 qui stocke les données sous la forme d'octets comporte un nombre "n" d'entrées de bit, permettant d'adresser chaque octet au moyen d'une25 combinaison caractéristique de "n" bits, supérieur au nombre "p" de sorties de bit d'adresse du processeur. Il est alors prévu d'exploiter pour l'adressage de la mémoire des sorties de bit programmables à la demande dont est doté le processeur, étant supposé ici que le nombre "q" de sorties30 de bit programmables dont il est possible de disposer au niveau du processeur est au moins égal à "n-p". Dans un exemple de réalisation, la mémoire 1 comporte par exemple un nombre "n" d'entrées de bit d'adresse, ici référencées "AI0" à "AI18", qui est égal à dix neuf, alors35 que le processeur 2 est un processeur de traitement de signal qui comporte un accès standard pour mémoire de type & accès aléatoire, dite RAM, ou à lecture seule, dite ROM. Comme connu ce processeur 1 est équipé d'une base de temps non représentée qui lui fournit les signaux d'horloge nécessaires à son fonctionnement. L'accès standard comporte un nombre "p" de sorties de bit d'adresse, référencés "AO0" à "AO14", qui est égal à quinze pour le signal d'adresse. Il comporte aussi des entrées- sorties, ici supposées exploitées en tant que sorties de bit programmables, qui sont montrées au nombre de cinq et référencées "I/01" à "I/04", ainsi qu'une sortie de bit de commande d'écriture-lecture "R/W", une sortie de bit de commande de sélection d'octet, ici référencée "byte-s" et une sortie de bit d'attaque "strb". Le processeur 2 et la mémoire 1 sont interconnectés par l'intermédiaire d'une interface 3 qui comporte ici un circuit logique binaire 4 et un certain nombre de liaisons dont une liaison "L" qui permet des transferts de données, octet par octet, entre mémoire et processeur et inversement, cette liaison "L" est par exemple composée de huit fils parallèles ici référencés "DO" à "D7". L'interface 3 est insérée entre la mémoire 1 et le processeur 2 dans l'agencement, par exemple à l'intérieur de l'unité de commande 2, ou autrement, éventuellement au25 niveau d'un montage intermédiaire comme montré sur la figure unique. Dans la réalisation envisagée, une première entrée de bit d'adresse, soit ici "AI0", de la mémoire 1 est relié en sortie du circuit logique 3, "p" autres entrées de bit30 d'adresse, soit ici les quinze entrées "AI1" à "AI15" de la mémoire 1 sont reliées aux "p" sorties de bit d'adresse "AOO" à "AO14" du processeur 2. Les trois entrées de bit d'adresse "AI16" à "AI18", ici restantes, de la mémoire 1 sont reliées aux trois entrées-sorties "I/01" à "I/03" du35 processeur 2, exploitées en tant que sorties de bit programmables, un programme de type répétitif classique, établi à la demande, étant exploité pour permettre de les faire fonctionner comme des sorties de bit d'adresse. Le circuit logique 3 est relié à l'entrée-sortie "I/00", à la sortie de bit de commande de sélection d'octet "byte-s", à la sortie de bit d'attaque "strb" et à la sortie de signal de commande d'écriture-lecture "R/W" du processeur 2. Cette interface 3 est agencée pour commander l'entrée de bit d'adresse de poids faible AI0 de la mémoire 1, la valeur du bit appliqué à cette entrée est définie par l'équation: AI0 = R/W & byte-s OU R/W & 1/00. La commande d'écriture-lecture "R/W" est classiquement à un niveau binaire "zéro" en phase d'écriture et à un niveau "un" en phase de lecture. La sortie de commande de sélection d'octet "byte-s" est prévue sur les processeurs de traitement de signaux qui en sont dotés pour permettre l'écriture et la lecture d'un mot de seize bits dans une mémoire à stockage par octet, deux accès pour un octet étant successivement effectués vers la20 mémoire, le bit de commande étant à un niveau binaire "zéro" pour un premier octet puis à un niveau binaire "un" pour l'octet suivant. Il est donc prévu ici d'exploiter cette commande de sélection d'octet puisqu'il est prévu un transfert de25 données par octet entre la mémoire 1 et le processeur 2. Par programmation adéquate du processeur deux octets formant un même mot de seize bits et considérés comme ayant l'un un poids faible et l'autre un poids fort peuvent donc être successivement adressés.30 Chaque emplacement d'octet en mémoire 1 est donc ici adressable par le processeur 2 au moyen de la combinaison d'un bit de poids faible obtenu à partir de la relation AI0 définie ci-dessus, des bits d'adresse fournis par les sorties de bit d'adresse A00 à A014 et des bits d'adresse de35 poids fort émanant des sorties de bit programmables que constituent ici les entrées-sorties I/01 à 1/03 programmées en conséquence. Le circuit logique 4 pilote une entrée de bit de commande d'écriture "WR de la mémoire 2, en fonction des signaux fournis par la sortie de bit de commande d'écriture-lecture en mémoire "R/W", par la sortie de bit de sélection d'octet (byte-s) et par la sortie de bit d'attaque "strb" du processeur 1 auxquelles ce circuit logique est relié, le bit de commande WR étant défini par la relation WR = strb & g7 & byte-s. La sortie de bit d'attaque "strb" du processeur 2 produit une impulsion correspondant à un niveau binaire "zéro" pour chaque octet. Le circuit logique 4 pilote aussi une entrée de bit d'autorisation de sortie;"5 de la mémoire 1 en fonction des signaux fournis par la sortie de bit de commande d'écriture-lecture en mémoire et par la sortie de bit d'attaque "strb" du processeur 1 auxquelles il est relié, le bit d'autorisation de sortie est défini par la relation U =20 strb & R/W. Une entrée de bit de sélection d'unité CE que comporte la mémoire 1 est pilotée par l'intermédiaire d'une entrée- sortie I/04 du processeur 2 qui est exploitée en tant que sortie de bit programmable, le processeur étant programmé25 pour permettre l'exploitation de la mémoire, lorsqu'il en est besoin. En conséquence le processeur 2 intervient notamment pour les opérations d'adressage d'octet en phase d'écriture par l'intermédiaire de son entrée/sortie "I/0" exploitée en30 tant que sortie de bit programmable et programmée comme indiqué ci-dessus afin de commander l'entrée de bit d'adresse "AIO" de la mémoire, pour chaque octet. Le bit de commande en écriture WR se traduit par une impulsion qui correspond à l'une ou l'autre des bits de niveau binaire35 zéro successivement produits par la sortie de bit d'attaque "strb" du processeur suivant le niveau du bit présent à la sortie de bit de sélection d'octet "byte-su. Le processeur 2 intervient lors des opérations d'adressage en lecture d'octet notamment par l'intermédiaire de sa sortie de bit de sélection d'octet "byte-s" qui permet de sélectionner successivement deux octets qui sont considérés l'un comme de poids faible et l'autre comme de poids fort par le processeur. La commande en lecture de la mémoire est essentiellement pilotée par la sortie de bit d'attaque10 "strb" du processeur. Il est possible de commander en plusieurs unités de mémoire 1 identiques à la mémoire 1 envisagée ci-dessus, lorsque celles-ci sont montées en parallèle, en affectant une entrée-sortie différente du processeur à chaque unité15 constituant alors la mémoire pour commander les entrées de bit de sélection d'unité respectives de ces unités. Les entrées d'adresse de bit de ces unités de mémoire sont alors reliées en parallèle soit en sortie du circuit logique 3 pour celle recevant le bit d'adresse de poids le plus faible, soit aux sorties de bit d'adresse du processeur comme l'est une mémoire 1 unique. Il en est de même pour les entrées de bit de commande d'écriture-lecture "i", de bit d'autorisation de sortie "É" et pour les entrées-sorties de données "DO" à "D7" par l'intermédiaire desquelles les25 octets de données sont échangés avec le processeur. Ce dernier a donc la possibilité de sélectionner l'unité de mémoire à laquelle il veut s'adresser en agissant sur celle de ses propres entrées-sorties qui est reliée à l'entrée de bit de sélection d'unité CE de cette unité, l'adressage et30 les opérations d'écriture et de lecture étant par ailleurs identiques pour toutes les unités. REVENDICATIONS 1/ Interface entre mémoire (1) et processeur (2) permettant des échanges de données par l'intermédiaire d'une liaison (L), pour mémoire, qui stocke les données sous la forme d'octets et qui comporte "n" entrées de bit d'adresse (AIO à AI18) permettant l'adressage de chaque octet au moyen d'une combinaison caractéristique de "n" bits, et pour processeur, qui comporte un nombre "p" de sorties de bit d'adresse (AO0 à A014) inférieur à "n" et un nombre "q" de sorties de bit de donnée programmable (I/00 à I/04) au moins égal à "n-p", caractérisée en ce qu'elle comporte un circuit logique binaire (3) relié à une sortie de bit de sélection d'octet (byte-s), à une sortie de bit de commande d'écriture-lecture en mémoire (R/W) et à l'une des "q" sorties de bit programmables (I/00) dûment programme du processeur, pour produire un bit AIO qui est destiné à l'entrée (AIO) de bit d'adresse de poids le plus faible de la mémoire et qui est défini par la relation AIO = R/W & byte-s OU R/W & I/00, en ce qu'elle relie les "p" entrées de bit d'adresse de la20 mémoire, qui succèdent par ordre de poids croissant à l'entrée de bit d'adresse de poids le plus faible, aux "p" sorties de bit (AOO - A014) d'adresse du processeur prises dans le même ordre et en ce qu'elle relie les "n-p-1" entrées restantes de bits d'adresse (AIl à AI15) de mémoire25 ayant les poids les plus forts à autant de sorties de bit programmables (I/O1 à I/03) du processeur dûment programmées à cet effet. 2/ Interface, selon la revendication 1, caractérisé en ce que le circuit logique binaire qu'elle comporte est aussi relié à une sortie de bit d'attaque (strb) du processeur et génère un bit de commande d'écriture WR défini par la relation WR = strb & R/W & byte-s et un bit d'autorisation de sortie OE défini par la relation OE = strb & R/W pour les entrées correspondantes (WR) et (OE) de la mémoire. 3/ Interface, selon la revendication 2, pour mémoire composée d'au moins deux unités (1) identiques en parallèle qui disposent chacune de "n" entrées d'adresse de bit (AI0 à AI18), d'une entrée de bit de commande d'écriture-lecture 5 (WR), d'une entrée de bit d'autorisation de sortie (OE) et d'une entrée de bit de sélection d'unité (CE), caractérisée en ce que le circuit logique qu'elle comporte est relié en parallèle aux différentes entrées de bit de poids faible, de bit d'écriture et de bit d'autorisation de sortie de chacune10 des unités, l'entrée de sélection (CE) propre à chacune des unités étant reliées à une sortie de bit programmable du processeur qui diffère avec chaque unité et qui est programmée en conséquence. 4/ Processeur caractérisé en ce qu'il comporte une interface selon au moins l'une des revendications 1 à 3. / Mémoire caractérisée en ce qu'elle comporte une interface selon au moins l'une des revendications 1 à 3.