Brevet FR2569289A1 — publié le 19860221

DESCRIPTION DOMAINE TECHNIQUE Hardware. INDICATION DE L'ETAT DE lA TECHNIQUE ANTERIEURE Actuellement, les mémoires utilisées dans les techniques de l'informatique, RABS, ROM, etc.., forment des ensembles structurés de cellules disjointes, adressables individuellement. les bus adresses et de commandes permettent de sélectionner une cellule de t bits, à un moment donné, pour une opération de lecture ou écriture; l'information constituée par l'ensemble de ces e bits transite alors par le bus données; lorsqu'on passe d'une adresse à la suivante, et a fortiori s'il y a multiplexage, la cellule qui était connectée au bus données est alors remplacée par la suivante.Il est impossible de façon simultanée, de faire transiter par le bus données une information de t bits, dont une partie proviendrait de la fin d'une cellule et l'autre partie du début de la cellule suivante: la structure actuelle des mémoires fait de ces cellules des éléments totalement disjoints au niveau de l'adressage; il existe des procédés très nombreux et variés permettant, de structurer des cellules élémentaires en blocs, puis d'opérer des groupements de tels blocs et des groupements de groupements, mais, quelles que soient les méthodes utilisées, la contrainte décrite plus haut demeure: à l'ensemble des adresses correspond de façon injective un ensemble de lieux recevant ou émettant les informations via le bus données, et qui sont complètement séparés les uns des autres. EXPOSE DE l'INVENTION On appelle élément minimum, une cellule mémoire à p bits, qui, lorsqu'elle est sélectionnée, délivre (ou reçoit) simultanément les p bits constitutifs de l'information élémentaire. Par exemple ces cellules mémoires peuvent être des latches. On suppose qu'on dispose de 3N éléments minimum. N est choisi pour des raisons de commodité égal à une puissance de 2; on a donc N = 2n. le fait de choisir 3N de ces éléments va permettre d'indiquer comment d'une part, se constitue un bloc de N éléments, et comment d'autre part de tels blocs sont assemblés les uns aux autres.On note ainsi la suite de ces 3N éléments: M0,M1,..,MN-1,M0,M1,..,MN-1,M@0,M@1,..,MN-1 Soit alors un bus données ainsi constitué: c'est un groupement de k canaux; chacun d'eux est un groupement de p canaux binaires. On nomme ces k canaux D0,D1,...,Dk-1 Dans une architecture classi -que, N est un multiple de k, et on connecte au bus données en Di, les éléments M1,Mk+1,M2k+i,...,Mi,Mk+i,M2k+i,..,Mi,Mk+i,M2k+i,.. Lorsqu'une adresse est donnée depuis l'extérieur, pour une lecture par exemple, il circule alors sur le bus données une information émise par un groupement du type Mo Ml...Mk-1, conformément aux connections décrites plus haut; si on passe à l'adresse suivante, c'est alors l'information émise par le groupement MkMk+l...M2k qui circule dans les mêmes conditions, et ainsi de suite. les méthodes permettant de sélectionner à partir de l'adresse les commandes appropriées, font appel à des techniques utilisant notamment des décodeurs et des buffers, techniques bien connues de tous les spécialistes. le problème qu'on pose est le suivant (il importe peu qu'il s'agisse de lecture ou d'écriture): on suppose que l'adresse N corresponde à la circulation sur le bus données de l'information relative à M@ M@...M@@ et on veut que la succession des adresses à partir de N détermine sur le bus Do D1...Dk-1, la suite des informations relatives à M1 m2...Mk-1 Mk pour l'adresse N+1, M2 M3... Mk Mk+1 pour l'adresse N+2,..........., Mi Mi+1...Mi+k-1 pour l'a dresse N+i,............,MN-K MN-k+1...MN-1 pour l'adresse 2N-k, MN-k+1 MN-k+2..MN-1 M+0 pour l'adresse 2N-k+1, MN-k+2 MN-k+3... M+0 M+1 pour l'adresse 2N-k+2,............,MN-1M+0...M+k-2 pour l'adresse 2N-1, et ainsi de suite. la solution consiste en premier lieu à relier chaque élément minimum aux k canaux du bus données et non pas, seulement à l'un d'entre eux. Ainsi M-i, Mi, M. seront chacune connectées à Do, D1, ...,Dk-1, et ceci pour tout i. En second lieu, il faut définir la fonction logique du cablage qui permettra de déterminer la circulation des informations conformément au but poursuivi, énoncé cidessus. Enfin il faudra indiquer comment une mémoire ainsi structurée, formant un bloc de N éléments minimum, peut être assemblée avec d'autres blocs du même type de manière à généraliser le procédé.Un bloc mémoire répondant à la question va comprendre un système de décodage, un certain cablage et N éléments minimum. le système de décodage reçoit depuis l'extérieur du bloc une adresse par un canal à n bits, Ao Al...4 ~l; il est muni de sa commande de aélection CS, provenant de l'extérieur; on appelle S@ S1., SN-1 ses commandes de sortie. Chaque élément minimum est muni de sa commande de sélection CSi. Il y a N telles commandes CSO, OS1,..., CSN-1 Chaque élément minimum est relié aux k canaux du bus don -nées: chacune de ces liaisons est sous le contrôle d'une commande dont la fonction est d'autoriser ou non le flux des informations le long de cette liaison; ces commandes seront notées CJ0, Cj1,..., Cjk-1 pour Mj.Si l'on souhaite l'accès en lecture et en écriture, ces commandes seront combinées, chacune avec la commande classique R/W provenant de l'extérieur. Ainsi le bloc mémoire comporte en entrée: une commande CS, un canal à n bits pour le bus adresses A0A1...An-1, 15 une commande éventuelle Rj, k-l entrées notées EN-1, En-2,..., EN-k+2, EN-k+l dont la fonction est indiquée ci-après. Le bloc mémoire comporte en sortie: k canaux à p bits formant le bus données D0D1...Dk-1, k-l sorties notées SN-1, SN-2,..., SN-k+1 dont la fonction est indiquée ci-après. le procédé permettant de constituer le bloc mémoire est entièrement défini lorsque la fonction logique du cablage interne aura été donnée; on s'exprime ici dans le cadre de la logique positive. les fonctions régissant les valeurs logiques des CSi sont les suivantes: pour tout i variant de kil à N-l, bornes comprises, CSI = Si-k+l + Si-k+2 + .... + Si (I). Pour tout i variant de O à k-2, bornes comprises, on aura l'équation suivante CSj = EN@@@@@ + EN@@@@@ +....+ EN-1+S@+@1+...+S, (II). les fonctions régissant les valeurs logiques que devront vérifier les Oji seront définies par les équations suivantes: pour tout j variant de k-l à N-l, bornes comprises, Ci = s. i et ceci pour tout i variant de O à k-l (III). Pour tout j variant de O à k-2, bornes comprises, Si i varie de O à j, bornes comprises, Ci = Sj i (IV ), si i varie de j+l à k-l, bornes comprises, on aura alors CJ = EN-i+j (V). Pour définir le sens de circulation des informations, il suffit de combiner la commande R/W avec chaque Ci selon des méthodes classiques et parfaitement connues; un exemple en est donné dans la description détaillée d'un mode de réalisation, ci-après; à noter que cette question ne se pose pas dans le cas d'une ROM. Il reste à indiquer comment différents blocs, structurés conformément au procédé décrit ci-dessus, peuvent etre assemblés entre eux: appelons B- un bloc et B son suivant; il suffit alors de réaliser les fonctions logiques E. = Si .(VI) et ceci pour i variant de N-k+l à N-l, bornes comprises. Dans un ensemble de blocs, la sélection de chacun d'eux se fera par le moyen de techniques classiques et parfaitement connues, de décodage. Avantages de l'invention: la contrainte qui fait qulhabituellement, passant d'une adresse à la suivante, on saute d'un emplacement mémoire au suivant sans que ceux-ci se recouvrent, est supprimée; il devient donc possible, pour une largeur de fenêtre déterminée X, de gérer aisément et de façon optimale, une suite d'informations de longueurs variables inférieures ou égales à X, en réduisant au minimum le nombre des accès mémoire; on sait qu' actuellement c'est à ce niveau qu'on rencontre une des plus grande des difficultés pour accroître la vitesse des ordinateurs; il est raisonnable d'en déduire que la voie est ainsi ouverte aussi bien à la conception d'architectures nouvelles de processeurs qu'à ces le de nouveaux langages machine, adaptés aux nouvelles ressources offertes par l'invention. DESCRIPTION DES DESSINS le déssin 1 représente un bloc mémoire. D est un décodeur 2.4, CS sa commande de sélection. M0, M1, M2, M3 sont les cellules é lémentaires (éléments minimum), dont les entrées sont notées respectivement Io, I1, 12, 13 les sorties O mandes de sélection CS0, CS1, CS2, CS3. D0, D1, D2, sent les canaux du bus données. Le bloc R qui est répété à 12 exemplaires, a son détail interne précisé dans le déssin 2 le déssin 2 représente le bloc R apparaissant dans le déssin Le déssin 3 représente un assemblage de blocs mémoire; D est un décodeur 2.4, CE sa commande de sélection.B , 3, B sont trois blocs, chacun du type donné dans le déssin 1; E2 et E3 ont la valeur logique 0. EXPOSE DETAILLE D'UN MODE DE REALISATION La réalisation décrite consiste en une spécification dans un cas particulier de la description fournie plus haut: on se place dans le cas p = 1 k = 3 N = 4 n = 2 . Dans le déssin 1 on figure ainsi un bloc de 4 cellules élémentaires à 1 bit; chacune est un latch; le bloc sera adressable par une fenêtre de largeur 3. les fonctions logiques définies par les équations (I) et (II) de la description générale et qui permettent de spécifier les CSi prennent ici la forme suivante: CS0 = E2 + E3 + S0 ss1 = E3 + S0 + CS2 = S0 SO + S1 + S2 CS3 S1 ecter nt + La mise en oeuvre consiste simplement à injecter dans 4 portes OU les ensembles respectifs E2E3S0, E3S0S1, S0S1S2, S1S2S3 et les sorties de ces portes sont reliées respectivement chacune a OSO, CS1, CS2, CS3. les fonctions logiques définies par les équations (III, IV, V)de la description générale et qui permettent de spécifier les Cjj prennent ici la forme: C00 = S0 C01 = E3 C02 = E2 C10 = S1 C11 = S0 C12 = E3 C20 = S2 C21 = S1 C22 = S0 C30 = S3 C31 = S2 C32 = S1 la mise en oeuvre consiste simplement à relier chaque commande du type Ci , soit à la sortie du décodeur, soit à l'entrée, à laquelle elle doit être logiquement égale selon les équations ci-dessus. le bloc R spécifie le sens du flux d'informations sur chaque liaison, élément minimum-bus données, par la combinaison de la commande R/W et la commande Ci et ceci pour tout i et tout j. Il suffit alors de réaliser les fonctions logiques: Cij - Cj.R/W CIj = Cj. (NON (R/W)), ce qui est mis en oeuvre de façon évidente par un jeu de portes ET et NON et de buffers 3-états, comme l'indique le déssin 2. On suppose qu'on délivre par exemple l'adresse AlA0 = Cl et que E2 et E3 sont mis à 0; alors S1 est le seul des Si à être mis à 1, et il actionne donc les commandes CS1, CS2, CS33 d'autre part C10, C21, C32 sont également activées ; suivant la valeur de R/W, les dispositifs R mettent alors l'ensemble formé par les 3 éléments minimum Mî, M2, M3 en réception ou en émission, respectivement sur D0, D1, D2; c'était bien le but qu'on se proposait d'atteindre. L'assemblage de plusieurs blocs du type précédent est illustré par le déssin 3; il y a 3 blocs B-, B, B+; le décodeur D permet de sélectionner les blocs B , B et B et éventuellement un suivant qui n'est pas figuré sur le déssin; les commandes de leurs décodeurs internes sont respectivement CS, CS, CS+; alors les fonctions logiques définies par les équations (VI) prennent la forme : E2 = S-2 E3 = 3-3 E+2 = S2 E+3 = S E2 et E-3 ont été mises à 0, car on a supposé que 3 était le premier bloc de l'assemblage; la mise en oeuvre consiste simplement à relier les entrées E d'un bloc aux sorties S correspondantes de son précédent, conformément aux équations ci-dessus. On suppose qu'on délivre par exemple l'adresse A3A2A1A0= 0110; le décodeur recevant A2A3 active la commande CS. Dans le bloc 3, S2 étant mis à 1, CS2 et CS3 sont activées, ainsi que C20 et c31. Dans le bloc B+, par l'intermédiaire de 32 qui est activée par S2, CS+0 et C0+2 es trouvent activées; suivant la valeur de R/W, les dispositifs R mettent alors l'ensemble formé par M2, M3, M+0 en émission ou en réception, respectivement sur Po, D1, D2; ce qui constitue bien le résultat attendu. APPLICATION INDUSTRIELIE DE L'INVENTION les technologies actuelles de construction des mémoires offrent la possibilité de mettre en oeuvre le procédé décrit dans ce qui précède. REVENDICATIONS REVENDICATION 1 Structure de bloc mémoire, adressable par une fenêtre à placement continu avec chevauchement, munie d'un canal d'adressage et d'un canal de commandes en entrée, d'un canal de données en entrée-sortie, d'un canal de commandes en sortie, utilisant des éléments fonctionnels, cellules élémentaires de mémoire, systèmes de décodage, fonctions logiques élémentaires (type OU, NON, ET,etc..), et des techniques de cablage, classiques et connus, CARACTERISEE PAR lA COMBINAISON du moyen que chaque commande de sélection des cellules élémentaires est une somme logique (Fonction OU) des sorties du système de décodage des adresses et éventuellement de certaines entrées du bloc, selon les équations I et Il données dans le texte de la description et qu'on rappelle ici:: CSi = Si-k+l + 3i-k+2 + ... + Si i variant de k-l à N-l (I) CSi F ENk+i+l + ... + ENl + 5o + S1 + ....+ Si i i variant de O à k-2, (II) du moyen que chaque cellule élémentaire de mémoire est reliée à tous les canaux du bus données, du moyen que chaque commande sélectionnant une des liaisons précédentes est logiquement égale, soit à une sortie du système de décodage, soit à une certaine entrée du bloc, selon les équa tions III, IV, V données dans le texte de la description et qu'on rappelle ici:: Cji = Sj-1 i vsriant de 0 à k-1 et j variant de k-1 à N-1 (III) Cji = Sj-i j variant de 0 à k-2 et i variant de 0 à j (IV) Cji = EN=i+j j variant de O à k-2 et i variant de j+1 à kil (V) REVENDICATION 2 Procédé d'assemblage de blocs mémoire définissant une mémoire adressable par une fenetre à déplacement continu avec chevauchement, utilisant des techniques classiques de décodage pour la sélection de chaque bloc, CARkCTERISE PAR lA COMBINAISON du moyen que chaque bloc de l'assemblage est structuré selon la revendication 1 ci-dessus, du moyen que les entrées d'un bloc notées Ei et certaines sorties du bloc précédent notées su sont logiquement égales selon les équations (VI) du texte de la description et qu'on rappelle ici: : Ei = Si i variant de N-k+1 à N-1. Toutes les variations d'indice apparaissant dans les revendications se font bornes comprises.