Brevet FR2272463A1 — publié le 19751219

La présente invention concerne un dispositif d'accès à une mémoire du type à recouvrement comportant des unités d'emmagasinage dont les cycles de fonctionnement se recouvrent de façon à obtenir une augmentation de la vitesse apparente de la mémoire. L'inconvénient de ce type de mémoire est qu'elle nécessite un nombre considérable de circuits logiques, principalement constitués par des bascules, pour emmagasiner les divers signaux de contrôle qui sont utilisés pour accéder à la mémoire, et qu'elle exige une chronologie précise pour contrôler le fonctionnement desdites bascules afin que les informations puissent être mises à la disposition de la partie appropriée de la mémoire au moment voulu. La présente invention permet de réduire le nombre de circuits nécessaires pour contrôler la mémoire ainsi que la complexité de sa chronologie grâce à l'emploi de techniques connues d'acheminement séquentiel lappelées "pipelining" dans la littérature anglo-saxonne) qui consistent à séparer les opérations logiques au moyen de registres.Les bascules ici utilisées pour emmagasiner les informations de contrôle destinées à la mémoire sont disposées dans des registres à décalage dans lesquels elles sont transférées d'une bascule à l'autre de façon synchronisée avec le fonctionnement de compteurs en anneau servant à engendrer les signaux de porte et de commande destinés à la mémoire, ces informations étant disponibles aux fins d'une prise de décision logique dans une bascule quelconque lorsque la mémoire est prête à assurer une fonction particulière. L'un des objets de la présente invention est donc de simplifier la logique nécessaire aux fins de l'utilisation d'une mémoire. Un autre objet de l'invention est de simplifier la logique et la chronologie des mémoires du type à recouvrement. Un autre objet de l'invention est d'utiliser la technique d'acheminement séquentiel pour simplifier la logique et la chronologie d'une mémoire du type à recouvrement. 0'autres objets, caractéristiques et avantages de la présente invention ressortiront mieux de l'exposé qui suit, fait en référence aux dessins annexés à ce texte, qui représentent un mode de réalisation préféré de celle-ci. Les figures la et lb représentent schématiquement un système utilisant la présente invention. La figure 2 représente schématiquement les compteurs en anneau de la figure 1. La figure 3 représente la forme des signaux de sortie des compteurs en anneau de la figure 2. La figure 4 représente schématiquement un circuit typique d'acheminement séquentiel à registres à décala#ge utilisé dans l'ensemble de la figure 1. La figure 5 est un diagramme des temps illustrant le fonctionnement du circuit de la figure 1 lorsqu'il exécute des opérations d'emmagasinage, d'emmagasinage partiel et d'extraction. La mémoire représentée sur la figure 1 comprend quatre unités d'emmagasinage logique (LSU) 10 distinctes dont chacune possède son propre registre d'emmagasinage tSAR) 12 et son propre compteur en anneau (RC) 14. Chacune des unités 10 comporte huit segments de données A à H contenant chacun 250.000 bits. On peut accéder aux unités 10 à intervalles de 80 ns au moyen des bits d'adresse 9 à 28 qui leur sont transmis en parallèle par l'unité centrale (CPU). Les bits 27 et 28 sont décodés par le circuit de décodage 16 afin d'appliquer un signal de déclenchement à l'une des quatre portes 18 et de sélectionner l'unité 10 particulière qui est adressée. Les bits 8 à Il permettent de sélectionner un segment particulier de cette dernière unité, cependant que les bits restants permettent d'accéder dans le segment sélectionné à un ensemble de 72 bits de données constitué par deux mots de données t64 bits) et 8 bits de contrôle. Les signaux de porte et de commande qui sont utilisés dans les unités 10 sont engendrés par des compteurs en anneau 14 commandés par un signal d'horloge, dit 40/40, émanant de l'unité CPU et dont la période est de 80 ns, celle-ci étant constituée par un niveau haut de 40 ns et par un niveau bas de 40 ns. Chaque compteur en anneau reçott également l'un des bits d'un signal de sélection à quatre bits émanant de l'unité CPU de façon à déterminer laquelle des unités 10 fera l'objet d'une opération d'accès pendant une période quelconque de 80 ns de l'horloge. Le signal de sélection comprend trois "0" binaires et un "1" binaire.Le compteur en anneau 14 qui reçoit ce "1" binaire est celui qui est associé à l'unité 10 sélectionnée, les autres compteurs en anneau, qui reçoivent les O binaires, étant associés aux unités 10 qui n'ont pas été sélectionnées. L'un de ces compteurs en anneau est représenté sur la figure 2. Ce compteur est d'un type simple et produit une impulsion d'une durée de 40 ns à chacune de ses sorties à intervalles de 20 ns. Ces impulsions sont appliquées à des bascules (L) pour engendrer les différents signaux utilisés dans la mémoire et dont la forme est représentée sur la figure 3. Chaque bascule reçoit une entrée d'enclenchement tS) de l'une des sorties du compteur en anneau et une entrée de restauration tR) d'une sortie plus en aval du compteur de telle sorte qu'il puisse produire l'impulsion requise à l'instant désiré. Un élément dit de commande d'emmagasinage tSDE) est prévu pour contrôler le transfert des données entre la mémoire et l'unité CPU. Cet élément fournit les données logiques de correction d'erreur et les signaux d'adressage et de contrôle de chronologie nécessaires. Selon l'invention, la réalisation de l'élément SDE fait appel à l'emploi de techniques d'acheminement séquentiel, qui permettent de séparer les opérations logiques au moyen de registres Les données de chronologie et de contrôle peuvent de ce fait circuler dans le circuit d'acheminement séquentiel à un multiple de la moitié de la cadence de sélection d'unité de mémoire t80 ns ] et d'être disponibles aux fins de décisions logiques à des instants choisis et en différents points du circuit. il est facile, lors d'opérations logiques intéressant plusieurs circuits d'acheminement séquentiel, de faire coincider les données en réglant de façon appropriée les horloges qui transmettent des signaux chronologiques aux registres dont il s'agit. Un circuit d'acheminement séquentiel à un seul bit est représenté sur la figure 4. Comme le montre sur cette figure, ce circuit se compose de plusieurs registres à décalage SR à deux positions, dont chacun comporte deux bascules, l'entrée de la sec#onde bascule étant alimentée par la première bascule et la sortie de la seconde bascule alimentant l'entrée de la première bascule de l'étage suivant. Le premier étage L du registre SR1 reçoit le signal d'entrée provenant de l'unité CPU et le second étage T de chacun des registres engendre une sortie un intervalle de temps donné après l'apparition de la sortie de l'étage qui le précède et avant l'apparition des données à la sortie de l'étage qui lui fait suite.Comme le montre la figure, ce circuit utilise le même signal d'horloge 40/40 que les compteurs en anneau 14, si bien que l'acheminement des données appliquées aux entrées des différents étages est synchronisé avec le fonctionnement de l'unité de mémoire. Plusieurs circuits d'acheminement séquentiel sont représentés sur la figure 1, chacun d'eux étant capable de traiter un ou plusieurs bits. Les circuits capables de traiter plusieurs bits sont constitués par plusieurs des circuits représentés sur la figure 4 et connectés en parallèle. Le premier circuit d'acheminement séquentiel 20 est un circuit à quatre bits qui reçoit les quatre impulsions de sélection précédemment mentionnées à propos des compteurs en anneau. Un second circuit 22 reçoit un unique bit pour indiquer si la mémoire doit ou non effectuer une opération d'emmagasinage. En l'occurrence, un "1" indique qu'une telle opération doit être effectuée. Le circuit suivant, 24, est un autre circuit à un seul bit qui reçoit une indication d'emmagasinage partiel, en l'espèce un 1", de l'unité CPU. Si un signal de sélection est transmis au circuit 20, un "0" appliqué au circuit 22 ainsi qu'au circuit 24, une opération d'extraction ou de lecture doit être effectuée. Les trois circuits suivants, 26, 28 et 30, contiennent respectivement un bit de diagnostic, un bit d'annulation et des bits de marquage. Les circuits 26 et 28 sont des circuits à un seul bit qui contiennent des signaux susceptibles de nécessiter l'annulation des données demandées. Le circuit 30 accepte neuf bits en parallèle, huit bits qui indiquent celui ou ceux des multiplets d'un mot qui doivent être modifiés lors d'une opération d'emmagasinage partiel et un bit qui est le bit de parité des huit autres. Si l'un de ces huit bits est un "1", cela signifie que le multiplet correspondant du mot doit être modifié. Ainsi, si le premier de ces huit bits est un "1", le premier multiplet doit être modifié par l'opération. d'emmagasinage partiel; si le premier et le second de ces huit bits sont des "1", le premier et le second multiplets du mot doivent être modifiés, etc. Le circuit suivant, référencé 32 (figure lob), est celui qui reçoit les données à mettre en mémoire. Ce circuit a une capacité de soixantedouze bits de façon à pouvoir accepter les soixante-quatre bits du mot, plus huit bits engendrés par le générateur 34 de codes de correction d'erreur. Le fonctionnement du circuit de la figure 1 est décrit ci-après dans le. cas d'opérations d'emmagasinage partiel et d'extraction. On -décrira d'abord une opération d'emmagasinage partiel, puis une opération d'emmagasinage et enfin une opération d'extraction. Cette opération d'emmagasinage partiel est effectuée dans l'unité LSU 10a. A l'instant TO, l'unité CPU f#o#rnit les bits d'adresse 9 à 28. Les bits 27 et 28 sont décodés de façon à sélectionner le registre SAR 12a, les bits 9 à 26 étant alors placés dans ce registre.Comme le montre la figure 5, les quatre bits de sélection, le bit d'emmagasinage partiel et les neuf bits de marquage sont transmis à la mémoire en même temps que l'adresse à l'instant TO Ainsi qu'on l'a précédemment mentionné, les bits de sélection servent à déclencher l'horloge associée à l'unité LSU 10a afin que les impulsions d'horloge destinées à cette unité soient engendrées. L'une de ces impulsions met le registre 12a en état d'accepter l'adresse. Par ailleurs, à l'instant TO, les bits de sélection, d'emmagasinage partiel et de marquage sont respectivement appliqués aux circuits d'acheminement séquentiel 20, 24 et 30.Comme le montre la figure 1, les bits de sélection, d'emmagasinage partiel et de marquage afférents à l'opération d'emmagasinage partiel passent de façon séquentielle d'un étage à l'autre, les premiers passant par le registre SR1, puis par le registre SR2, et ainsi de suite, sous le contrôle de l'impulsion de l'horloge 40/40-. A l'instant TO + 80ns, les données sont introduites dans le circuit d'acheminement séquentiel 32 où les bits de contrôle leurs sont ajoutés, et appliquées au registre SR2. Les données sont alors acheminées dans le circuit 32 en parallèle avec les bits de sélection du circuit 20, le bit d'emmagasinage partiel du circuit 24 et les bits de marquage du circuit 30, jusqu'à la sortie du registre SR 4. L'impulsion d'extraction engendrée par le compteur en anneau permet alors d'extraire du décodeur 36 les données contenues dans l'unité LSU 10a et de les transférer à un circuit de porte 33 comportant une porte ET pour chaque bit Simultanément, les données sortant du registre SR 4 du circuit 32 sont introduites dans un circuit de porte analogue.Chacune des portes ET qui reçoit un bit du décodeur 36 reçoit également l'inverse de l'un des huit bits de marquage. Chacune des portes ET qui reçoit un bit du registre SR 4 reçoit également l'un des huit bits de marquage. De la sorte, tout multiplet comportant un "1" dans cette position de bit de marquage permet l'introduction dans le registre SR 5 des données contenues dans le registre SR 4. La combinaison des données provenant de l'unité LSU 10e et de celles introduites au cours de cette opération d'emmagasinage partiel est donc réalisée, et les nouvelles données obtenues grâce à cette dernière opération se trouvent alors contenues dans le registre SR 5.Par ailleurs, à l'instant où les données sortent du registre SR 4, le signal d'emmagasinage partiel est appliqué au compteur en anneau 14a de façon à mettre de nouveau celui-ci en service et est également appliqué au circuit ET 38 afin que le signal de sélection puisse être appliqué au registre SR 4 du circuit d'acheminement séquentiel 20. La modification des données du mot rend nécessaire une mise à jour des bits de correction d'erreur. Cette mise à jour est effectuée dans le circuit 40 de génération de bits de contrôle, le résultat de cette opération étant appliqué au registre SR 6 ainsi que les bits de données du mot double. A l'instant où les données sortent du registre SR 6, la sortie du circuit 20 contenant les bits de sélection est appliquée a la porte ET 40 en même temps que la sortie du registre SR 6 du circuit 32. Une série de portes ET est prévue pour chacune des unités LSU 10a à 10b. Toutefois, seule l'unité LSU 10a reçoit les données puisque ses portes ET sont les seules qui soient ouvertes par un signal de sélection "1". A l'instant T0+320 ns, des bits d'emmagasinage et de sélection sont appliqués aux circuits 20 et 22 afin d'effectuer une opération d'emmaga sinage intéressant l'unité LSU 10d par exemple. Comme précédemment, une adresse est introduite dans le registre SAR 12 en même temps que l'impul sion de sélection est appliquée en ce dernier. Cette impulsion provoque la mise en route du compteur en anneau 14d lors de l'application de la partie positive de l'impulsion de 40 ns, ce qui a pour effet de permettre l'acceptation des bits d'adresse par le registre d'adresses. A l'instant TO+400 ns, les données sont introduites dans le circuit 32, les bits de contrôle sont engendrés par le générateur de contrôle et l'adresse ainsi que les bits de contrôle sont placés dans le registre SR 2.Par ailleurs, la sortie du registre SR 1 du circuit 20 et celle du registre SR 1 du circuit 22 sont combinées en un circuit ET, appliquées à un circuit à retard, puis à la porte ET 44, en même temps que les données emmagasinées apparaissent à la sortie du registre SR 2. De même que la porte ET 40, la porte ET 44 se compose de quatre ensembles de portes ET, une pour chacune des unités LSU 10a à lord. Chacune de ces portes ET reçoit l'un des bits du mot de soixante-douze- bits et l'un des bits de sélection.Seules les portes afférentes à l'unité LSU 10b sont ouvertes puisque cette unité est la seule à recevoir un bit "1" du circuit d'acheminement séquentiel 20 utilisé aux fins des opérations de sélection. Ainsi. les données sont introduites dans l'unité LSU 10d à l'instant TO+510 ns en même temps que les données introduites dans l'unité LSU 10a, si bien qu'une opération d'emmagasinage partiel et une opération d'emmagasinage peuvent être simultanément effectuées dans ces unités grâce au présent procédé, qui rend ces différentes opérations mutuellement compatibles. La dernière opération qui doit être décrite est une opération d'extraction. En l'occurrence, les impulsions de sélection et d'adressage sont reçues à l'instant TO et par Irintermédiaire du compteur en anneau afférent à l'unité LSU 10c, De ce fait, le registre SAR 12c transmet l'adresse des données demandées à l'unité LSU 10c. Lorsque les données extraites parviennent à un décodeur de sélection, une impulsion provenant du compteur en anneau provoque la transmission des données à l'instant TO +400 ns. Bien que l'on ait décrit dans ce qui précède et représenté sur les dessins les caractéristiques essentielles de l'invention appliquées à un mode de réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y apporter toutes modifications de forme ou de détail qu'il juge utiles, sans pour autant sortir du cadre de ladite invention. REVENDICATIONS 1.- Dispositif d'accès à une mémoire. du type à recouvrement comportant plusieurs unités d'emmagasinage, les opérations de lecture et/ou d'écriture dans ces unités s'effectuant par l'intermédiaire d'impulsions délivrées par des compteurs en anneau commandés par des impulsions d'horloge, un anneau étant affecté à chacune des unités, ce dispositif est caractérisé en ce qu'il comporte. une série de registres à décalage commandés par l'intermédiaire des impulsions d'horloge pour décaler des informations de commande à la cadence des impulsions d'horloge; des moyens délivrant les informations de commande au compteur en anneau de l'unité d'emmagasinage à adresser pour une opération de lecture et/ou d'écriture ainsi qu'aux registres à décalage, les compteurs et les registres à décalage opérant ensuite en synchronisme sous la commande des impulsions d'horloge; des moyens logiques reliant les entrées des unités d'emmagasinage à ceux des étages des registres à décalage où se trouvent les informations de commande nécessaires à la commande de l'opération à effectuer sur l'unité d'emmagasinage. 2.- Dispositif selon la revendication précédente caractérisé en ce que les informations de commande permettent d'effectuer des opérations d'extraction de données, d'emmagasinage ou d'emmagasinage partiel dans une unité d'emmagasinage. 3.- Dispositif selon la revendication 1 ou la revendication 2 caractérisé en ce que les registres à décalage comportent un registre à décalage pour décaler l'information de contrôle de sélection indiquant l'unité d'emmagasinage à sélectionner, un registre à décalage pour décaler l'information de contrôle indiquant une opération d'emmagasinage, un registre à décalage pour décaler l'information de contrôle indiquant une opération d'emmagasinage partiel, un registre à décalage pour décaler une information de contrôle formée par des bits de marquage, un bit de marquage étant prévu pour chacun des multiplets à modifier dans une série de multiplets dans une unité d'emmagasinage. 4.- Dispositif selon la revendication 1 ou 2 ou 3 caractérisé en ce qu'il comporte en outre un registre à décalage commande par les impulsions horloge et recevant les données à emmagasiner dans une unité d'emmagasinage, des moyens logiques relient l'étage de ce registre à décalage contenant les données au moment où elles sont nécessaires pour une opération d'emmagasinage, à l'entrée de l'unité d'emmagasinage qui doit recevoir ces données. 5.- Dispositif selon l'une quelconque des revendications 3 ou 4 caractérisé en ce qu'il comporte des circuits logiques ET dont les signaux d'entrée sont constitués par les sorties d'une même position des registres à décalage d'information de sélection et d'information d'emmagasinage et dont les signaux de sortie sont utilisés pour commander l'emmagasinage des données dans l'unité d'emmagasinage sélectionnée. 6.- Dispositif selon l'une quelconque des revendications 3 ou 4 ou 5 caractérisé en ce qu'il comporte des circuits logiques ET dont les signaux d'entrée sont constitués par les sorties d'une même position des registres à décalage d'information de sélection et d'information d'emmagasinage partiel et dont les signaux de sortie sont utilisés pour commander l'emmagasinage partiel de données dans l'unité d'emmagasinage sélectionnée. 7.- Dispositif selon l'une quelconque des revendications 3 ou 4 ou 5 ou 6, caractérisé en ce qu'il comporte des circuits logiques ET pour transférer un multiplet de données d'un étage à l'étage suivant du registre à décalage de données quand le bit de marquage correspondant a une valeur binaire prédéterminée et pour transférer dans cet étage suivant le multiplet obtenu de l'unité d'emmagasinage quand le bit de marquage correspondant a l'autre valeur binaire.