FR 2028347 A1 19701009 FR 6944502 A 19691222 69 44502 1 2028347 La présente invention concerne un système de mémoire d'ordinateur dans lequel les données sont transférées entre une mémoire locale fonctionnant à grande vitesse et un ou plusieurs étages de mémoire de capacité supérieure fonctionnant à une vitesse plus faible, et dans lequel les données modifiées 5 sont ré-écrites dans la mémoire fonctionnant à grande vitesse immédiatement et dans la mémoire fonctionnant à vitesse plus faible sur la base du principe de vol de cycles. Dans les ordinateurs électroniques il est très souhaitable d'emmagasiner toute l'information de façon qu'elle soit immédiatement disponible pour les 10 commandes et le traitement. Pour réaliser le traitement le plus rapide, la mémoire la plus appropriée doit avoir une capacité aussi grande que l'exige les problèmes possibles et doit avoir la vitesse la plus élevée possible. Cependant puisque le prix d'une mémoire est proportionnel au produit (vitesse) x (capacité), le prix d'une mémoire de grande capacité et fonctionnant à vites-15 se élevée devient prohibitif. Par conséquent, les mémoires existantes fonctionnant a grande vitesse ont une capacité relativement faible qui souvent ne suffit pas pour la quantité d'informations nécessaires pour les problèmes importants ou la multiprogrammation. Pour résoudre ce problème, un certain nombre de solutions, ont été pro-20 posées dans l'art antérieur. Le brevet n° 1 503 223 déposé par la demanderesse en France le 5 décembre 1966 décrit un procédé et un système pour remplacer des blocs de pages de données entre une mémoire fonctionnant à vitesse élevée et une mémoire fonctionnant à vitesse lente lorsqu' il?y a plus de place disponible dans la mémoire fonctionnant à vitesse élevée et une décision doit être 25 prise pour savoir quelle page de données doit être remplacée. Ce brevet décrit un algorithme basé sur des facteurs autres que le temps d'arrivée d'une page donnée pour décider quelle page est à remplacer. Le brevet n° 1 412 453 déposé par la demanderesse en France le 17 Juillet 1964 décrit une configuration particulière pour une mémoire qui peut être 30 utilisée avec la présente invention. Comme cela deviendra apparent d'après la description ultérieure, on utilise dans le système de l'invention une mémoire associative. Bien que ces mémoires soient bien connues, on pourra se référer à ce brevet pour trouver leur fonctionnement détaillé. Une solution pour résoudre le problème qui consiste à réaliser des mémoi-35 res à vitesse élevée de capacité suffisante pour les problèmes importants ou la multiprogrammation est la machine à un niveau d'emmagasinage. Dans une telle machine, une mémoire de grande capacité et de vitesse faible est réalisée, cette mémoire ayant une capacité suffisante pour emmagasiner toute l'information nécessaire pour un problème désiré quelconque. On utilise aussi 40 une mémoire de faible capacité, fonctionnant à grande vitesse et les program 69 44502 2 2028347 mes sont écrits comme si toute l'information était dans cette mémoire. On utilise aussi une troisième mémoire ayant des fonctions de commande, qui indique quelle information provenant de la mémoire à faible vitesse est aussi contenue dans la mémoire à grande vitesse à un instant donné quelconque. Lors-5 que le programme passant dans l'ordinateur nécessite un mot particulier d'informations, on fait une vérification pour voir si ce mot est dans la mémoire fonctionnant à grande vitesse. S'il y est, l'information est recherchée et utilisée. S'il n'y est pas, une opération de recherche est réalisée, et le mot nécessaire est transféré de la mémoire auxiliaire de vitesse faible à 10 la mémoire fonctionnant à vitesse élevée. Bien qu'il soit possible que cet échange soit réalisé sur un seul mot quand cela devient nécessaire, on a trouvé que, à cause de la vitesse faible de la mémoire auxiliaire, le retard qui résulte du transfert dépend rarement du fait qu'un seul mot ou un bloc de mots est transféré. L'expérience a montré qu'il est très probable, que, si 15 un mot est nécessaire, les autres mots entourant le mot nécessaire seront aussi nécessaires. Par conséquent, lorsqu'on détermine qu'un mot d'informations est nécessaire à partir de la mémoire auxiliaire, on fait un transfert du bloc contenant ce mot de la mémoire auxiliaire à la mémoire fonctionnant à grande vitesse. 20 Tant qu'il y a des blocs d'adresses vides dans la mémoire fonctionnant à grande vitesse, l'opération de transfert précédemment décrite ne pose pas de problème. Cependant lorsque la mémoire fonctionnant à grande vitesse est pleine, il devient nécessaire de faire une décision de remplacement. Lorsque le remplacement d'un bloc d'informations est nécessaire, un critère de rempla-25 cernent idéal consisterait à remplacer le bloc d'informations qui ne sera pas utilisé avant la période de temps la plus longue possible. Les critères existants qui consistent à sélectionner le bloc ou la page à remplacer de façon aléatoire, ou qui consistent à faire la sélection sur une base première-entrée-première-sortie ((FIFO) (c'est-à-dire, remplacer le bloc qui se trouvait dans 30 la mémoire fonctionnant à grande vitesse pendant le plus long temps) sont loin de cette solution idéale. Cependant, il y a une seconde partie au problème, et ceci concerne la question de savoir comment l'information modifiée doit être ramenée à la mé-* moire auxiliaire. Il y a deux procédés bien connus pour traiter ce problème 35 qui se basent sur deux possiblités extrêmes. Le premier procédé implique de laisser le bloc ou la page entière d'informations dans la mémoire locale, jusqu'à ce que l'espace qu'il occupe soit nécessaire. Lorsque cela se produit, la page modifiée est transférée totalement à la mémoire auxiliaire. Pour cette solution, on écrit simplement sur la page lorsqu'on sait que le contenu n'a 40 pas été modifié et qu'une copie valable de l'information se trouve encore 69 44502 3 2028347 dans la mémoire auxiliaire. Le principal avantage de cette technique est qu'un nombre minimum de demandes de canal est engendré. Cependant, la quantité d'informations transférée pour chaque excitation de canal est grands par rapport au dispositif décrit ci-dessous. Un autre avantage est que pendant une période où une page 5 se trouve dans la mémoire locale, une ligne peut être changée de nombreuses fois sans augmenter la quantité totale d'informations qui doit finalement être transférée à la mémoire auxiliaire. Les inconvénients de cette solution sont triples. En premier lieu, si le prix de la mémoire est défini par le produit de la capacité occupée et 10 le temps réel d'occupation, il est évident que cette solution reviendra plus chère que celle qui permettrait toujours d'écrire instantanément par dessus la page lorsque l'espace est nécessaire. Deuxièmement, bien qu'un nombre minimum d'excitations de canal soit amorcé, la quantité importanty d'informations transférée à chaque excitation dure pendant une période pendant laquelle, 15 aucun autre circuit ne peut utiliser ce canal. Ceci est d'importance plus ou moins grande suivant le nombre de canaux disponibles et l'agencement de la mémoire totale. Troisièmement, puisqué l'unité de traitement sera retardée du temps nécessaire pour transférer la page sortante à la mémoire auxiliaire et introduire la page nécessaire, ainsi que pour la mise à jour de toutes 20 les tables du système, cette solution réduit le fonctionnement de l'unité de traitement à des poussées d'activité suivies par des retards importants. Une seconde solution bien connue à ce problème implique l'emmagasinage d'un seul mot d'information dans la mémoire locale et la mémoire auxiliaire pour chaque instruction d'emmagasinage. Cette solution évite d'avoir à échan-25 ger une page entière d'information à la mémoire auxiliaire lorsque de l'espace supplémentaire est nécessaire. En conséquence, une nouvelle page à transférer à partir de la mémoire auxiliaire peut toujours être écrite sur la page se trouvant dans la mémoire locale. Ceci a l'effet de réduire le retard de l'unité de traitement provoqué en attendant la nouvelle information et aussi 30 de réduire le prix de la mémoire en diminuant le temps où elle est occupée. D'autre part l'inconvénient est que l'unité de traitement est un peu limitée par la cadence à laquelle le dispositif d'errmagasinage le plus lent acceptera les instructions d'emmagasinage. Deuxièmement, un nombre maximum d'excitations de canaux sont engendrées 35 puisque l'exécution de chaque instruction d'emmagasinage provoque une mise à jour de la mémoire auxiliaire. L'efficacité de cette solution dépend par conséquent de la distribution du temps écoulé entre des références d'emmagasinage consécutives. D'après les commentaires précédents, il est clair que les solutions pré 69 44502 4 2028347 sentées ont des inconvénients et des avantages distincts. Il est intéressant d'obtenir les avantages des deux solutions et de diminuer les inconvénients de ces solutions. On a trouvé qu'un perfectionnement important aux dispositions de mémoire 5 par page impliquant une mémoire locale de faible capacité fonctionnant à grande vitesse et une mémoire auxiliaire de grande capacité fonctionnant à une vitesse inférieure peut §tre obtenu en utilisant une technique d'enmagasinage retardée. Bien que la description suivante soit basée sur une hiérarchie de mémoires simples à deux niveaux, le principe de la présente invention est 10 plus général et il peut être utilisé pour commander la circulation de données entre deux niveaux quelconques d'une hiérarchie de mémoires à plusieurs niveaux. Le procédé de fonctionnement du système nécessite que chaque fois qu'un mot ou ligne d'une page est modifié pendant son exécution par l'ordinateur, elle est placée dans la mémoire locale et un repère approprié appelé drapeau 15 est créé indiquand le changement. Chaque fois que la mémoire auxiliaire a un temps d'accès disponible, ces drapeaux sont balayés et les lignes de données ayant des drapeaux sont transférées à la mémoire auxiliaire et les drapeaux sont remis aux conditions initiales. Ainsi, le fonctionnement se poursuit tant que du temps est disponible ou que des lignes modifiées existent ou jus-20 qu'à ce qu'une autre demande de priorité supérieure interrompe le fonctionnement de la mémoire. Cependant, s'il arrive que l'espace occupé par une page dans la mémoire locale doit être obtenu, le système passe à un autre mode dans lequel seuls les mots nécessaires dans la mémoire locale sont immédiatement ré-écrits dans la mémoire auxiliaire sur une base de priorité supérieure et 25 immédiatement après une nouvelle page peut être écrite dé nouveau dans la mémoire locale. Cependant, si on détermine qu'aucun changement ne doit être apporté dans la mémoire auxiliaire, soit à cause de la non activité, soit à cause d'un service antérieur par la séquence décrite précédemment, l'écriture d'une nouvelle page peut se produire immédiatement sur une ancienne. 30 Par conséquent, un principal objet de la présente invention est de réa liser un système d'organisation par page d'une mémoire combinant les caractéristiques de l'organisation par page à la demande et de l'emmagasinage direct. Un autre objet est de réaliser un système dans lequel une mémoire auxi-" liaire peut être continuellement mise à jour sur une base de vol de cycles. 35 Un autre objet encore est de réaliser un dispositif de commande de mé moire pour effectuer un errmagasinage retardé pendant une opération normale du système sans interrompre les autres fonctions du système. Un autre objet encore est de réaliser un système dans lequel l'organisation par page à la demande peut être effectuée lorsque cela est nécessaire. 40 D'autres objets caractéristiques et avantages de la présente invention 69 44502 5 2028347 ressortirorvt 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. Le mode de réalisation préféré concerne un système de mémoire dans lequel les données sont transférées entre une mémoire locale fonctionnant à vi-5 tesse élevée et un ou plusieurs étages d'une mémoire fonctionnant à vitesse lente et de plus grande capacité, les données étant ré-écrites dans la mémoire fonctionnant à vitesse élevée sur la base du principe de vol de cycle. Il y a des circuits de commande de sorte que lorsqu'un petit segment de données dans un bloc ou page particulière de la mémoire fonctionnant à vitesse élevée 10 est modifié un indicateur est établi. Lorsque la mémoire auxiliaire a du temps disponible, des indicateurs sont vérifiés et les mots ou lignes ré-écrites dans cette mémoire auxiliaire. Lorsqu'on désire remplacer une page complète dans la mémoire fonctionnant à vitesse élevée, les indicateurs sont ré-écrits immédiatement dans la mémoire auxiliaire sur une base de priorité supérieure 15 après quoi de nouvelles données provenant de la mémoire auxiliaire peuvent être écrites sur la page dans la mémoire fonctionnant à vitesse élevée. La figure 1 représente un bloc diagramme de la réalisation décrite et représentée en détail sur les figures 2A à 2E. La figure 2 représente comment doivent Stre disposées les figures 2A 20 à 2E. Les figures 2A à 2E représentent en détail une réalisation préférée du système de la présente invention. La figure 3 représente un diagramme des impulsions de chronologie utilisées pour la réalisation représentée sur les figures 2A à 2E. 25 La figure 4A représente un diagramme schématique logique pour des comman des de mémoire associative qui peuvent être utilisées dans la présente invention. La figure 4B représente la section d'emmagasinage réelle d'une mémoire associative qui fonctionne avec les commandes représentées sur la figure 4A. 30 La figure 5 représente un diagramme logique d'un élément d'emmagasinage de bit de vacance unique dans une mémoire associative, VA comme représenté sur la figure 4B. La figure 6 représente un schéma logique d'un élément d'emmagasinage de bit de la mémoire associative comme représenté dans la figure 4B. 35 Les objets de la présente invention sont atteints en utilisant un système de mémoire utilisable dans un ordinateur électronique, comprenant une mémoire de faible capacité fonctionnnant à une vitesse élevée et une mémoire de grande capacité fonctionnant à une vitesse faible. Ces mémoires sont organisées de façon que la mémoire à vitesse élevée ait un espace d'emmagasinage disponible 40 pour plusieurs premiers segments de données, chacun des segments étant composé 69 44502 6 2028347 de plusieurs; seconds ssgments qui peuvent être adressés individuellement. Ces segments de données sont généralement appelés pages et mots respectivement. On prévoit des moyens pour transférer les premiers segments complets de données depuis la mémoire de grande capacité fonctionnant à une vitesse lente dans 5 la mémoire fonctionnant à vitesse élevée et des moyens pour ré-écrire immédiatement les seconds segments de données modifiés par l'ordinateur dans la mémoire fonctionnant à vitesse élevée. Il y a des moyens pour ré-écrire ces données modifiées dans la mémoire fonctionnant à vitesse lente, chaque fois que du temps est disponible à moins que les données fassent partie d'un pre-10 mier segment de données ou page qui est à enlever de la mémoire fonctionnant à vitesse élevée. Dans ce cas, des moyens de commande sont actionnés pour écrire tous'les seconds segments modifiés de données dans la mémoire fonctionnant à vitesse lente sur une base de priorité supérieure après quoi le premier segment de données peut être enlevé de la mémoire fonctionnant à vitesse élevée 15 où un nouveau premier segment peut être ré-écrit par dessus l'ancien. On doit naturellement comprendre qu'aucun mot dans la mémoire fonctionnnant à vitesse élevée ne peut être modifié par l'ordinateur à moins que le mot dans une forme antérieure ne soit précédemment emmagasiné dans cette mémoire. Le terme modifié peut être appliqué à une valeur ou à un mot qui est en réalité changé 20 ou a un résultat qui a un emplacement vide jusqu'à ce qu'un calcul soit réalisé. Conformément à la réalisation préférée de l'invention, le dispositif pour commander l'écriture des données modifiées dans la mémoire fonctionnant à vitesse lente comprend une mémoire associative de faible capacité dans laquel-25 le chacun des seconds segments de données modifié est emmagasiné simultanément avec la ré-écriture dans la mémoire fonctionnant à vitesse élevée. De plus, l'adresse du mot dans la mémoire de faible vitesse est comprise dans un champ d'adresses de la mémoire associative. Comme on le comprendra, le premier segment de données particulier ou page dans lequel le mot de données est placé 30 peut facilement être déterminé à partir de cette adresse globale. La mémoire associative commande le transfert des mots et leur retour dans la mémoire à vitesse lente dans laquelle, le service étant rendu,, un élément de page est basé sur une priorité prédéterminée. Lorsqu'on a déterminé qu'une page donnée doit être remplacée, la mémoire associative est inter-35 rogée plusieurs fois pour trouver les modifications de mots pour cette page particulière et la ré-écriture nécessaire est réalisée dans la mémoire de vitesse lente jusqu'à ce que tous ces mots aient été ré-écrits. Il est important de noter que cette dernière opération est réalisée sur une base de priorité supérieure. 40 Les premiers segments de données relativement grands sont appelés pages 69 44502 7 2028347 tandis que les seconds segments de données constituant une page sont normalement des mots dans la mémoire adressables séparément. Dans le reste de la description de l'invention, cette terminologie sera utilisée pour simplifier l'explication, cependant, ces appellations ne sont pas données pour limiter 5 l'invention. L'appellation mot s'applique normalement à un seul élément discret de données adressable à partir de la mémoire par une simple opération de lecture. Dans certaines machines, un mot est composé de plusieurs multiplets. On peut réaliser l'adressage des multiplets, en prenant les multiplets comme des mots individuels auxquels on peut accéder séparément à partir de 10 divers registres de données. Dans le système décrit, le mot représentera l'uni té de données discrète la plus petite à l'intérieur d'une page qui peut être accéder directement au cours d'un seul cycle de lecture et ne représentera pas un multiplet individuel. Comme on l'a dit précédemment, la solution d'emmagasinage dans laquelle 15 les mots de données modifiés sont ré-écrits immédiatement dans la mémoire fonctionnant à vitesse élevée et dans la mémoire fonctionnant à vitesse lente ou mémoire auxiliaire impliquent de nombreuses interruptions non nécessaires dans le fonctionnement de la mémoire auxiliaire. Inversement, l'idée d'organisation par pages à la demande, dans laquelle aucune modification n'est appor 20 tée dans la mémoire auxiliaire, jusqu'à ce que la page soit à ré-écrire, provoque des interruptions dans le fonctionnement de la mémoire auxiliaire, puisque la page entière est ré-écrite unquement si un seul bit a été modifié. La présente invention a pour but de réaliser la majorité des opérations de ré-écriture dans la mémoire auxiliaire sur une base de vol de cycles ou autre-25 ment dit, lorsque la mémoire auxiliaire est libre. Ainsi, dans la plupart des cas, lorsqu'il est nécessaire de supprimer ou de ré-écrire une page dans la mémoire fonctionnant à vitesse élevée, toutes les modifications auront été éliminées et aucune opération de ré-écriture ne sera nécessaire te'est-à-dire l'espace est immédiatement utilisable). Par contre, si une opération 30 de ré-écriture est nécessaire seuls les mots qui n'ont pas été précédemment pris en considération seront ré-écrits dans la mémoire auxiliaire. Ceci réduit le temps nécessaire avant que la nouvelle page puisse être écrite dans la mémoire fonctionnant à vitesse élevée. Il est évident que la présentyinvention doit fonctionner dans le mode 35 d'emmagasinage classique à un niveau comme décrit dans le brevet français n° 1 509 223 déposé par la demanderesse en France, le 5 Décembre 1966. Le programmeur voit une mémoire virtuelle dans laquelle il n'est pas conscient de la nature particulière à deux niveaux de l'organisation de la mémoire. Chaque fois que des demandes sont faites à la mémoire, on fait une première 40 détermination pour voir si le mot demandé est actuellement dans la mémoire 69 44502 8 2028347 fonctionnant à vitesse élevée et, s'il n'y est pas, les opérations d'accès appropriées se produisent au cours desquelles une page comprenant ce mot est transférée de la mémoire auxiliaire dans la mémoire fonctionnant à vitesse élevée, totalement automatiquement. La présente invention fonctionne complè-5 tement dans cet esprit et n'apporte pas de modifications aux opérations du programmeur autres que le fait de réduire le temps total de résolution d'un problème pour une tâche donnée. Un tel système de mémoire doit réaliser le transfert des données dans l'ordinateur prêt à intervenir et ré-écrire les données modifiées dans la mémoire. L'opération de lecture se produit dans 10 la mémoire fonctionnant à vitesse élevée et c'est une opération de nature classique. Elle ne fait pas partie de la présente invention autrement que par le fait qu'elle affecte la condition qu'une nouvelle page soit transférée de la mémoire principale dans la mémoire fonctionnant à vitesse élevée. Les trois opérations essentielles pour la présente invention sont: (1) l'écriture 15 d'un nouveau mot ou mot modifié à partir de l'ordinateur principal dans la mémoire fonctionnant à vitesse élevée, (2) l'écriture de ces mots nouveaux ou modifiés dans la mémoire auxiliaire et (3) les opérations nécessaires lorsqu'une nouvelle page est à transférer de la mémoire principale dans la mémoire fonctionnant à vitesse élevée. 20 La réalisation du système utilise une mémoire associative de faible capa cité comme élément de commande principale. Les mots qui doivent Stre ré-écrits dans la mémoire principale passent en effet dans cette mémoire associative. Ainsi, les trois opérations énumérées précédemment sont affectées par la présence de la mémoire associative ce qui fait que, dans l'opération CD, les mots 25 modifiés doivent être écrits simultanément dans la mémoire fonctionnant à vitesse élevée et dans la mémoire associative et dans l'opération 12) l'écriture réelle dans la mémoire auxiliaire est réalisée de la mémoire associative à la mémoire auxiliaire. Finalementj avec l'opération (3), tous les mots modifiés dans la page particulière à ré-écrire à partir de la mémoire associa-30 tive doivent d'abord être ré-écrits dans la mémoire auxiliaire avant que l'espace puisse être libéré. Il est à noter qu'étant donné la nature du présent système et la nécessité d'emmagasiner tous les mots modifiés dans la mémoire associative, lorsqu'un mot est reçu è partir de l'unité de traitement, " et qu'il se présente sous sa forme modifiée, il doit être emmagasiné à la 35 fois dans la mémoire fonctionnant à vitesse élevée et dans la mémoire associative. S'il n'y a pas d'emplacement d'emmagasinage disponible à ce moment dans la mémoire associative, l'opération de l'ordinateur doit être suspendue jusqu'à ce que l'espace soit disponible. On peut naturellement se rendre compte facilement que l'on peut utiliser des dispositifs d'emmagasinage temporaires 40 pour éviter cette condition. Cependant, dans un but de simplicité on suppose 69 44502 g 2028347 que cette condition existe dans la réalisation décrite. Une mémoire associative qui peut être utilisée avec le système de la présente invention est décrite dans le brevet n° 1 412 453 déposé par la demanderesse en France le 17 Juillet 1964 ainsi que dans le brevet n° 1 509 5 223 déposé par la demanderesse en France le 5 Décembre 1966. On décrira le fonctionnement de la mémoire associative en se référant aux figures 4A, 4B, 5 et 6 ultérieurement. Pour une description plus détaillée du fonctionnement d'une telle mémoire, on pourra se référer aux brevets cités. La caractéristique essentielle de fonctionnement de l'indication d'accord du système de 10 la présente invention est que lorsque le critère d'accord ou argument est amené à la mémoire, seul l'accord d'ordre le plus bas Bst utilisé ou nécessaire pour le fonctionnement de système de la présente invention. En supposant ainsi qu'il y a des emplacements d'emmagasinage de 0 a 99 dans la mémoire associative, le premier accord réussi le plus voisin de 0 sera indiqué et 15 les opérations d'écriture ou de lecture appropriées se produiront dans ce mot. Deux associations d'accord sont réalisées dans la mémoire associative. La première est réalisée dans un cycle d'écriture, lorsqu'un mot modifié est écrit simultanément dans la mémoire fonctionnant à vitesse élevée et dans la mémoire associative. Tous les bits vacants sont interrogés, le premier 20 emplacement d'emmagasinage de mot vacant est sélectionné et le mot modifié est introduit avec les données et champs d'adresses appropriés. Ensuite, une adresse de page est recherchée pour un emmagasinage de priorité inférieure ou de priorité supérieure dans la mémoire principale. Le premier mot ayant cette adresse de page est sélectionné et ré-écrit dans la mémoire principale / 25 à l'adresse de mots désignée. Les opérations seront décrites au cours de la description particulière de la figure 2. Après avoir décrits les concepts dB la présente invention, on va maintenant la décrire en se référant aux dessins. Sur la figure 1, est représenté un système de mémoire conforme à la présente invention, sous forme de bloc 30 diagramme. Il est à noter que ce format suit l'organisation du diagramme schématique logique des figures 2A à 2E. Le bloc 10 représente les commandes d'accès à la mémoire fonctionnant à vitesse élevée, et les détails de ce circuit ne sont pas représentés sur la figure 2 puisque c'est un circuit classique et il fait simplement une vérification pour voir si l'adresse de mémoire de-35 mandée à partir de l'ordinateur est en réalité dans la mémoire 14 fonctionnant à vitesse élevée ou doit être recherchée à partir de la mémoire principale 18. Si on détermine qu'un bit d'information nécessaire n'est pas présent, un signal "demande de page" est envoyé au mécanisme 12 de décision de remplace» ment de page qui fera d'abord une vérification pour voir si une page vacante 40 est disponible dans la mémoire fonctionnant à vitesse élevée et sinon déci 69 44502 10 2028347 dera quelle page doit être remplacée. Cette décision de remplacement ne fait pas partie de la présente invention, la seule sortie significative du bloc 12 concernant l'invention est que finalemsnt une adressé de page soit produite, indiquant la page particulière actuellemsnt dans la mémoire 14 fonction-5 nant à vitesse élevée, qui va être remplacée. Cette adresse, comme cela sera décrit par la suite, est comparée avec toutes les adresses de page dans la mémoire associative de sorte que tous les mots modifiés emmagasinés dans cette mémoire faisant.partie de cette page doivent d'abord être ré-écrits dans la mémoire auxiliaire avant de ré-écrire la page entière. La circulation des 10 adresses et des données entre la mémoire 14 fonctionnant à vitesse élevée, la mémoire associative 16 et la mémoire 18 est représentée par les cables sur le schéma. En examinant 18 dessin, on notera que les données vont de l'ordinateur à la mémoire 14 et à la mémoire associative 16. Les données provenant de l'ordinateur peuvent atteindre la mémoire principale 18 seulement en pas- 15 sant dans la mémoire associative 16. De mime les données peuvent être transférées de la mémoire principale 18 uniquement à la mémoire 14. Le bloc 20 appelé commande d'emmagasinage de la mémoire principale, commande le transfert réel des données entre la mémoire fonctionnant à vitesse élevée, la mémoire principale et la mémoire associative. Les lignas de commande sont repré- 20 sentées reliant cette uniuté avec tous les autres blocs du système à l'exception du bloc 10 puisque cette unité nB concerne pas la présente invention. Lorsqu'une commande d'écriture va de l'unité 10 à la mémoire 14 fonctionnant à grande vitesse, une indication de es fait va de la mémoire 14 aux commandes 20 comme indiqué. L'unité de commande 20 reçoit trois signaux de conditionne- 25 ment.principaux provenant du système correspondant aux trois fonctions énumé-rées précédemment. Dans l'ordre ds priorité croissant, ils sont décrits ci-dessous. Lorsque la mémoire principale 18 a du temps d'emmagasinage disponible, elle indiquera aux commandes 20 que du temps est disponible pour emmagasiner 30 un mot modifié à partir de la mémoire associative, s'il y en a un. A ce moment, les commandes interrogent la mémoire associative 16 pour une page particulière déterminée par le compteur de page ID (qui sera décrit par la suite) et un mot modifié sera ensuite accédé et transférés à la mémoire principale. L'opération possible suivante SBra une indication d'écriture provenant 35 de l'ordinateur indiquant qu'un nouveau mot doit être écrit dans la mémoire fonctionnant à vitesse élevée. Il en résultera une recherche pour trouver un emplacement libre dans la mémoire associative et si on en trouve un, le mot sera écrit à la fois dans la mémoire fonctionnant à vitesse élevée et dans la mémoire associative 16. D'autre part si on ne trouve pas d'emplace-40 ment libre, l'opération de l'ordinateur est suspendue jusqu'à ce qu'un empla- 69 44502 11 2028347 cernent libre soit créé dans la mémoire associative comme décrit précédemment. Finalement l'opération de priorité la plus élevée est une indication provenant du mécanisme de décision de remplacement de page 12 qu'une page entière dans la mémoire 14 fonctionnant à grande vitesse doit être remplacée. 5 Une adresse est amenée à partir du mécanisme 12 à la mémoire associative 16 et tous les mots modifiés ayant cette adresse de page sont écrits séquentiellement dans la mémoire principale 18 et à la fin est fourni un signal approprié qui permettra le remplacement-de la page entière dans la mémoire fonctionnant à grande vitesse avec une nouvelle page provenant de la mémoire principa-10 le. Ayant ainsi décrit, de façon générale, le fonctionnement et l'organisation du système de la présente invention, on va faire une description particulière en se référant aux figures 2A-2E qui constituent un diagramme schématique logique et fonctionnel du système de l'invention. Il est à noter que l'on 15 utilise sur la figure 2, les mêmes numéros de référence pour la mémoire fonctionnant à vitesse élevée, la mémoire associative et la mémoire principale que sur la figure 1. La plus grande partie du mécanisme de commande représenté sur ces figures qui seront appelées par la suite figure 2, constitue le contenu du bloc 20 sur la figure 1. Il est à noter que les commandes particu-20 lières représentées dans les blocs 10 et 12 ne sont pas inclus puisque, comme on l'a dit précédemment, elles ne font pas partie de la présente invention, il est encore à noter que les entrées provenant de ces blocs sont représentées à gauche et dans la partie supérieure de la figure 2A et dans la partie supérieure de la figure 2C. 25 Comme on l'a dit précédemment, l'opération de priorité la plus élevée est utilisée lorsque le mécanisme de remplacement demande le transfert d'une page. Le transfert d'une page signifie le transfert d'une page à partir de la mémoire principale à un emplacement de page dans la mémoire fonctionnant à vitesse élevée. Cet emplacement de page constitue une section de la mémoire 30 qui peut contenir une page. Lorsque cela se produit le numéro d'identification de page est placé dans le compteur d'identification de page 101 et est utilisé comme argument pour trouver tous les mots dans cette page qui sont dans la mémoire associative. Lorsque chaque mot est trouvé, il Bst transféré à la mémoire principale. Lorsque tous les mots sont transférés à la mémoire princi-35 pale, un signal est produit qui dit au mécanisme de remplacement que la page peut maintenant être remplacée dans la mémoire fonctionnant à vitesse élevée. Sur la figure 2, la bascule 100 est mise à l'état "1" lorsque le mécanisme de remplacement demande un transfert de page. La bascule 102 est mise à "1" lorsqu'un accès pour un emmagasinage est demandé à la mémoire fonction-40 nant à vitesse élevée. La bascule 104 est mise à "1" lorsque la mémoire prin 69 44502 12 2028347 cipale indique qu'il faut transférer un mot de la mémoire associative à la mémoire principale. Comme toutes ces opérations nécessitent l'utilisation de la mémoire associative, une seule des opérations peut être réalisée à un instant donné. Ainsi la bascule 100 est la bascule de priorité la plus éle-5 vée. La bascule 102 est la bascule suivante de priorité la plus élevée et la bascule de priorité la plus basse est la bascule 104. Un train d'impulsions est continuellement engendré pour la mémoire associative. Ces impulsions sont S-1. S-2, A, B et C. Ces cinq impulsions sont continuellement engendrées par une horloge classique non représentée. Les impulsions sont représentées sur 10 la figure 3. L'impulsion S-1 est utilisée pour tester les bascules 100, 102 et 104. La bascule la plus à gauche qui est à l'état "1" sera trouvée et son état transféré à une des bascules 106, 106 ou 110. Comme les bascules 100, 102 et 104 sont enclenchées à des instants aléatoires, il est concevable que l'impulsion S-1 puisse être séparée entre deux bascules adjacentes et ainsi 15 enclenche plusieurs des bascules 106, 106 et 110. Pour corriger cette éventualité on utilise l'impulsion S-2. L'impulsion S-2 teste les bascules 106, 108 et 110. Elle trouve que la bascule la plus à gauche est à l'état "1" et met les bascules situées à droite à l'état "0". Il est à mentionner que la bascule 250 (figure 25 est intialement à l'état 20 "0" ce qui signifie que les circuits ET. 252 et 254 seront conditionnés. Lorsque la bascule 250 est à son état "1", les impulsions S-1 et S-2 sont inactives. On expliquera cela par la suite. On va maintenant décrire l'opération d'écriture de mot dans la mémoire fonctionnant à vitesse élevée et dans la mémoire associative. Lorsque l'unité 25 centrale de traitement demande un accès d'écriture à la mémoire fonctionnant à vitesse élevée une impulsions apparaît sur le conducteur 112, figure 2A. Cette impulsion sert à mettre à "1" la bascule 114 et aussi amorce un accès pour l'écriture dans la mémoire fonctionnant à vitesse élevée par 1'intermédiaire du conducteur 116. La même impulsion sert par l'intermédiaire du circuit 30 OU 116 à enclencher un monostable 120. Ceci produira une impulsion appelée HS-1, qui est utilisée pour mettre la bascule 102, figure 2E à son état "1". Comme mentionné précédemment, si la bascule 102 n'est pas à l'état "1", l'impulsion S-1 et l'impulsion S-2 serviront à mettre la bascule 108 à l'état - "1". 35 Sur la figure 2E, lorsque l'impulsion S-2 sort du circuit ET 256 elle est ramenée par l'intermédiaire d'un conducteur 258 à la figure 2B où elle met la bascule 250 è son état "1". La bascule 250 est le circuit de commande qui force la mémoire associative à considérer une entrée antérieure qui; s'accorde à l'adresse dans le registre MAR de la mémoire fonctionnant à vitesse 40 élevée. Il est possible que le même mot ait été changé précédemment et non 69 44502 13 2028347 encore ré-écrit dans la mémoire principale. Si on trouve une telle entrée antérieure, il sera écrit par dessus elle. Sinon le système passera au second cycle pendant lequel il cherchera un espace vacant dans la mémoire associative. Si on trouve un espace vacant, l'entrée sera réalisée dans cet espace. La 5 bascule 108 étant à son état "1", le conducteur 122 sera actif. On notera que le conducteur 122 va à la ligne de commande "écriture" du circuit de commande de la mémoire associative, figure 2B. Ceci amorcera une opération d'écriture dans la mémoire associative pendant l'impulsion C suivante. La bascule 250 Cfigure 2B) étant dans son état "1" le circuit ET 260 10 sera conditionné et la ligne 262 sera déconditionnée. Au temps B du cycle suivant, le circuit ET 260 aura un signal de sortie qui est appliqué à la porte 264 Cfigure 2A] afin de réaliser une opération d'association utilisant le contenu du registre MAR 130 comme argument. L'impulsion A est utilisée pour restaurer les indicateurs d'accord dans 15 les circuits de commande de la mémoire associative. L'impulsion C est utilisée pour conditionner soit les lignes de lecture, soit les lignes d'écriture. Pour l'opération décrite, si on trouve une adresse d'accord dans la mémoire associative, les données contenues dans le registre MDR 126, figure 2A, de la mémoire fonctionnant à vitesse élevée, seront transférées par l'intermé-20 diaire de la porte 128 au champ approprié de la mémoire associative. L'adresse qui est contenue dans le registre MAR 130 de la mémoire fonctionnant à vitesse élevée sera transférée par l'intermédiaire de la porte 132 au champ approprié de la mémoire associative. De cette manière le mot emmagasiné dans la mémoire fonctionnant à vitesse élevée est aussi emmagasiné dans la mémoire 25 associative avec son adresse. En supposant qu'un accord soit trouvé, une impulsion apparaîtra sur le conducteur "écritury terminée" 126 et passera dans le circuit ET 140. Cette impulsion restaurera les bascules 144, 250, 102 et 108 à leur état "0". Si on ne trouve pas d'accord, une impulsion apparaîtra sur le conducteur 30 134 et passera dans le circuit ET 136. Etant donné que le circuit ET 266 est conditionné (la bascule 250 est dans son état "1") l'impulsion passera dans le circuit à retard 268 et remettra la bascule 250 à l'état "0". La fonction du circuit à retard 268 est d'empêcher la bascule 250 de passer à son état "0" jusqu'à ce que les impulsions S-1 et S-2 se soient produites dans le cycle 35 suivant. Un second cycle suivra dans la mémoire associative dans lequel on recherchera un espace vide. L'action est la suivante: l'état actif du conducteur 122 va au circuit ET 124 qui est maintenant conditionné par le conducteur 262 de sorte que, à l'instant B, la sortie du circuit ET 124 sera utilisée 40 pour réaliser l'association sur.le bit libre de la mémoire associative afin 69 44502 14 2028347 de trouver l'espace vide le plus haut dans la mémoire associative. Une impulsion A est utilisée pour restaurer les indicateurs dans le circuit de commande de la mémoire associative comme précédemment. L'impulsion C est utilisée pour conditionner soit les lignes "lecture" soit les lignes "écriture". Dans 5 l'opération décrite, si on trouve un espace vide dans la mémoire associative, les données contenues dans le registres MDR 126, figure 2A, de la mémoire fonctionnant à vitesse élevée seront transférées par l'intermédiaire de la porte 128 au champ approprié de la mémoire associative. L'adresse qui est contenue dans le registre MAR 130 de la mémoire fonctionnant à vitesse élevée 10 sera transférée par l'intermédiaire de la porte 132 au champ approprié dans la mémoire associative. De cette manière, le mot emmagasiné dans la mémoire fonctionnant à vitesse élevée est aussi emmagasiné dans la mémoire associative avec son adresse. Si la mémoire associative est pleine, une impulsion apparaîtra sur le conducteur 134, figure 2B, et sera transmise par le circuit ET 15 136, le circuit ET 270, le circuit à retard 138, le circuit OU 118 afin d'enclencher ds nouveau le monostable 120. On a mentionné précédemment que lorsque l'impulsion "écriture terminée" apparaît sur le conducteur 126 qu'elle passe par le circuit ET 140 et restaure les bascules 102 et 108 à leur état "0". Dans le cas où la mémoire associative est pleine, et qu'une impulsion apparaît 20 sur la ligne "pas d'accord" 134, cette impulsion sert par l'intermédiaire du circuit OU 142 à mettre les deux bascules 108 et 102 è leur état "0". Cependant, dans ces cas, on notera que le monostable 120 est enclenché de nouveau un peu après et l'impulsion HS-1 est de nouveau utilisée pour mettre la bascule 102 à son état "1". Lorsque la bascule 102 est à son état "1", un autre essai 25 sera fait pour écrire le mot et son adresse dans la mémoire associative. Il est à remarquer que, en même temps que la bascule 114 est mise a son état "1", la bascule 144 Bst aussi mise à son état "1". La bascule 144 ne peut être remise à zéro jusqu'à ce que l'impulsion "écriture terminée" apparaisse sur le conducteur 126. La bascule 114 est remise à "0" lorsque l'accès "écri-30 ture" à la mémoire fonctionnant à vitesse élevée est terminé. L'unité centrale de traitement peut exécuter l'instruction suivante jusqu'à ce que la ligne 146 devienne active, ce qui se produit lorsque les deux bascules 114 et 144 sont à leur état "0". On va maintenant décrire le transfert des mots de la mémoire associative 35 à la mémoire magnétique. Pour cette opération, on utilise le compteur de pages ID, figure 2D, pour conserver la trace des pages. Ce compteur compte de 0 au nombre maximum de pages et ensuite il est remis à 0. Par exemple, s'il y a 8 pages, le compteur comptera de 0 à 7 et reviendra ensuite à 0. Initialement, il peut être 40 mis à un nombre quelconque dans cette gamme. Le mécanisme est mis en route 69 44S02 15 2028347 par un signal sur la ligne 146, figurfe 2C, qui se produit lorsqu'une page a été transférée de la mémoire principale à la mémoire fonctionnant à vitesse élevée. Ce signal passe dans le circuit OU 150 et il est utilisé pour enclencher le monostable 152. L'impulsion MS-1 est utilisée pour mettre la bascule 5 104, figure 2E, à son état "1". La bascule 104 étant à son état "1", la bascule 110 sera mise à son état "1" par un moyen précédemment décrit. La ligne 154 sera active. L'état actif de la ligne 154 passe par le circuit OU 160, figure 20, et va à la ligne 156 qui est la ligne de commande "lecture" pour la mémoire associative. L'état actif de la ligne 154 passe par le circuit 10 OU 160 et va au circuit ET 162. A l'instant B, le circuit ET 152 aura un signal de sortie qui va à la porte 164 afin de transférer le contenu du compteur de pages ID aux circuits d'association. On notera que la sortie du circuit OU 160 est appliquée par l'intermédiaire de la ligne 158 au circuit ET 261 dont l'autre entrée est fournie directement par l'impulsion B. Ceci trans-15 fère un "1" sur les lignes d'associations du bit de vacance de la mémoire associative avec l'identification de page. Ceci assure que l'on n'obtiendra que les accords de page lorsque le bit de vacance est rempli (mis à "1") autrement il sera nécessaire de restaurer le champ d'adresse de la mémoire associative après chaque lecture. L'état actif de la ligne 154 passe par le 20 circuit OU 160 et va au circuit ET 168, figure 2D. A l'instant C, le circuit ET 168 aura un signal de sortie qui va aux portes 170 et 172. Si on trouve dans.la mémoire associative un numéro ou une adresse de page qui s'accorde, la porte 170 servira à transférer la partie d'adresse du mot au registre MAR 174. La porte 172 servira à transférer la partie de données du mot au regis-25 tre MDR 176. De cette manière, un mot dans la mémoire associative est transféré au registre d'adresses et de données de la mémoire principale. L'état actif de la ligne 154 va au circuit ET 178, figure 2D. Si on ne trouve pas de mot s'accordant dans la mémoire associative, un signal apparaîtra sur la ligne "pas d'accord" 134 et ira au circuit ET 178. Ainsi, le circuit ET 178 30 aura un signal de sortie qui incrémente le compteur de pages ID. Un circuit de branchement sera réalisé par l'intermédiaire'du conducteur 180, du circuit à retard 182, du circuit OU 150 pour de nouveau enclencher le monostable 152. Il en résultera que l'opération sera reprise pour le numéro de page suivant. L'état actif de la ligne 154 va au circuit ET 184, figure 2D. Un signal sur 35 la ligne "pas d'accord" 134 sert ainsi par l'intermédiaire du circuit ET 184 et du circuit OU 186 à restaurer les bascules 110 et 104 à leur état "0". L'état actif de la ligne 154 va au circuit ET 185, figure 2C. Une impulsion sur la ligne "écriture terminée" 190 sert par l'intermédiaire du circuit ET 188 à enclencher le monostable 192. L'impulsion MS-2 est utilisée pour amorcer 40 un accès "écriture" dans la mémoire principale, figure 2D. Lorsque cet accès 69 44S02 16 2028347 est terminé, une impulsion apparaîtra sur le conducteur 194. L'état actif du conducteur 194 va au circuit ET 196. L'impulsion sur la ligne 194 passera par l'intermédiaire du circuit ET 196, figure 2C, et sera appliquée à la porte 198 afin de tester la ligne 200. Un circuit de branchement passe par la ligne 5 202 et le circuit OU 186 afin de remettre les bascules 110 et 104 à leur état "0". Si la ligne 200 n'est pas active, une impulsion apparaîtra sur le conducteur 204 qui passe par le circuit à retard 206 et le circuit OU 150 pour enclencher de nouveau le monostable 152. Ceci permettra de reprendre l'opération décrite. 10 On va maintenant décrire l'opération réalisée lorsqu'il faut un transfert immédiat d'une page. Dans la description précédente, on a mentionné que chaque fois qu'un accès d'écriture est terminé dans la mémoire principale, le conducteur 200 est testé. Si le conducteur 200 est actif, une impulsion apparaîtra sur le 15 conducteur 206 qui enclenche le monostable 210. L'impulsion MS-3 est appliquée à la porte 212 afin de transférer le numéro dans le compteur de page ID au registre de maintien 214. Lorsque le monostable 210 est restauré, il enclenche le monostable 216. L'impulsion MS-4 est appliquée à la porte 218 afin de transférer le numéro de page ID qui est sur le câble 220 au compteur de 20 page ID. Lorsque le monostable 216 est restauré, une impulsion passe par le circuit OU 222 pour enclencher le monostable 224. L'impulsions MS-5 est utilisée pour mettre la bascule 100 à son état "1". La bascule 100 étant à son état "1", la bascule 106 sera mise à son état "1" de la manière précédemment décrite. La ligne 226 sera active. L'état actif de la ligne 226 passe par 25 le circuit OU 160 et va au conducteur 158 qui sert de commande de lecture pour la mémoire associative. L'état actif du conducteur 226 passe par le circuit OU 160 et va au circuit ET 162, figure 2D. Au temps B, le circuit ET 162 aura un signal de sortie qui est utilisé pour transférer le contenu du compteur de page ID au circuit d'association de la mémoire associative. L'état 30 actif du conducteur 226 passe par le circuit OU 160 et va au circuit ET 168. A l'instant C, le circuit ET 168 aura un signal de sortie qui va aux portes 170 et 172 de sorte que si on trouve un accord dans la mémoire associative, la partie d'adresse du mot peut être ue par l'intermédiaire de la porte 170 et envoyée au registre MAR 174 de la mémoire principale. La partie donnée 35 du mot sera lue et envoyée par l'intermédiaire de la porte 172 au registre MDR de la mémoire principale. L'état actif du conducteur 226 va au circuit ET 218, figure 2C. Si on trouve un mot s'accordant dans la mémoire associative, une impulsion apparaîtra sur le conducteur 190 qui passe par le circuit ET 228 et est utilisée pour enclencher le monostable 230. 40 L'impulsion MS-6 est utilisée pour amorcer un accès d'écriture dans la 69 44502 17 2028347 mémoire principale. L'état actif dii conducteur 226 va au circuit 234, figure 20. Lorsque l'opération d'écriture est terminée dans la mémoire principale, une impulsion apparaîtra sur le conducteur 194 et passe par le circuit ET 234 pour aller au circuit OU 238 dont la sortie est utilisée pour remettre 5 les bascules 106 et 100 à leur état "0". Un circuit de branchement passe par l'unité a retard 236 et va au circuit OU 222 dont la sortie est utilisée pour enclencher le monostable 224. L'impulsion MS-5 met la bascule 100 à son état "1" et l'opération sera reprise. L'état actif du conducteur 226 va au circuit ET 240, figure 2C. Si on ne trouve pas de mot s'accordant dans la mémoire 10 associative, ceci signifie que tous les changements dans la page ont été écrits totalement dans la mémoire principale. Dans ce cas, une impulsion apparaîtra sur le conducteur 134, qui passe par le circuit ET 240 et est utilisée pour enclencher le monostable 244. L'impulsion MS-7 est appliquée au circuit OU 238, figure 2C, afin de remettre les bascules 106 et 100 à leur état "0". 15 Cette partie de commande du système provoquera la ré-écriture des mots dans la mémoire associative, provenant de la mime page dans la mémoire principale sur la mSme base de priorité, jusqu'à ce qu'il n'y ait plus de ces mots. Lorsque le monostable 242 est restauré, une impulsion apparaîtra sur le conducteur 244 qui signale au mécanisme de remplacement de passer au transfert de page 20 de la mémoire principale à la mémoire fonctionnant à vitesse élevée. L'impulsion MS-7 est aussi appliquée à la porte 246 afin de transférer le contenu du registre de maintien 214 au compteur de page ID. Le mécanisme qui transfère les mots de la mémoire associative à la mémoire principale, peut maintenant revenir à sa tâche de priorité inférieure au point où elle 25 a été interrompue. On pense que la description précédente du fonctionnement de la réalisation décrite, en se référant à la figure 2, permettra à l'homme de l'art d'adapter les principes de la présente invention, aux systèmes de mémoire existants ayant au moins deux niveaux différents d'emmagasinage, ayant des caractéristiques 30 de vitesse différente et utilisant des techniques de disposition par page dans lesquelles les pages complètes de données sont transférées de la mémoire lente à la mémoire rapide, suivant les besoins. Bien que l'on pense que le fonctionnement et les opérations générales des mémoires associatives soient assez connus dans la technique, on expliquera dans un but de clarté le fonc-35 tionnement particulier d'une mémoire associative appropriée telle que celle représentée sur les figures 4A, 4B, 5 et 6. On se référera à la figure 4A qui sera considérée avec la figure 4B, et sur laquelle les commandes de la mémoire associative sont représentée. Les bascules indicatrices d'accord sont remises à "1" par l'impulsion A et 40 peuvent être sélectivement mises à "0" par une des lignes "pas d'accord" 69 44502 13 2028347 provenant de la matrice d'éléments d'emmagasinage réels devenant actiVB. L'impulsion B provoque l'interrogation soit du bit de vacance soit des bits d'adresse d'identification de page de la mémoire associative, comme décrit précédemment et suivant le critère d'accord particulier sélectionné on supposera 5 qu'un accord est trouvé dans le système. En supposant par exemple que le bit de vacance est interrogé et que l'on trouve que le mot 1 est vacant, la ligne 300 ne sera pas excitée laissant ainsi la bascule 302 à son état "1". Comme cela sera apparent, les autres indicateurs d'accord seront remis à "0" ou non suivant le critère d'accord sélectionné. 10 Puisque le critère d'accord décrit précédemment concerne un bit de vacance, on supposera qus l'on désire réaliser une opération d'écriture dans la mémoire associative'. L'application de l'impulsion C au système provoquera le conditionnement d'un circuit ET 304, puisque la bascule 302 est encore mise à "1". La ligne 306 étant maintenant excitée, conditionne le circuit ET 308 pour 15 exciter la ligne de sélection d'écriture 310 qui provoquera l'écriture des données emmagasinées dans las registres MAR st MDR de la mémoire fonctionnant à vitesse élevée, dans les champs d'adresses et de données respectivement de la mémoire associative à l'emplacement du mot 1. L'excitation de la ligne 310 provoquera aussi la mise à "1" de la bascule correspondant aux bits de 20 vacance. Si d'autre part une opération de lecture a été indiquée, la sortie du circuit ET 304 conditionnera une borne du circuit ET 312 dont l'autre borne est conditionnée par la ligne de lecture 314. Ceci excitera la ligne de sélection de lecture 316 pour transférer le contenu du mot 1 de la mémoire associative. 25 On notera que si la bascule 302 a été remise à "0" par l'excitation de sa ligne 300 "pas d'accord", l'impulsion C se propagera vers le bas et passera dans la porte ET 318 pour interroger l'état de la bascule 320 pour voir si une condition d'accord ou pas d'accord existe pour ce mot. L'impulsion C se propagera ainsi dans tous les autres indicateurs d'accord, jusqu'à ce que 30 l'on trouve une indication d'accord ou une indication pas d'accord. L'effet de l'indication pas d'accord a été décrit précédemment. On va référer à la figure 4B sur laquelle chacun des blocs représente un emplacement d'emmagasinage de bit particulier, dans la mémoire principale. vLe contenu des bits individuels est décrit sur les figures 5 et 6, la figure 35 5 représentant un bit de vacance, et la figure 6 représente les éléments d'emmagasinage de bit réels. Les lignes d'écriture, pas d'accord et de lecture correspondant aux lignes 310, 300 et 316 pour le mot 1 de la figure 4A ont été appelées de la même façon que la figure 4B. Naturellement le fonctionnement de tous les autres éléments d'emmagasinage est le même. 40 On va maintenant se référer à la figure 5, sur laquelle est représenté 44502 19 2028347 un élément d'emmagasinage de bit de'vacance, qui est une version simplifiée de l'élément d'emmagasinage de bit représenté sur la figure 6. Seule une ligne d'entrée de bit est représentée puisqu'il est seulement nécessaire de faire une interrogation pour trouver l'existence de l'état "1" de la bascule qui 5 produira une indication pas d'accord pour le mot. Il n'est cependant jamais nécessaire d'extraire le contenu du bit de vacance, en conséquence, il n'y a pas besoin de lignes de lecture. Puisque la bascule est enclenchée strictement, par les lignes de sélection de lecture et d'écriture, il n'y a pas besoin de lignes d'entrée de données. 10 La figure 6, comme on l'a dit représente un élément d'emmagasinage de bits, tel qu'il serait utilisé dans les bits H-1 à H-N et L-1 à L-N. La bascule elle-même est enclenchée par l'application simultanée de données sur la ligne d'entrée de données et l'excitation de la ligne de sélection d'écriture et son état est détecté par l'application simultanée de signaux d'entrée 15 aux couples inférieurs de circuits ET à partir de la ligne de sélection de lecture et de la sortie de la bascule. La ligne "pas d'accord" ne sera évidemment excitée que par un "1" ou un "0". Ils sont appliqués aux lignes associées et l'indication pas d'accord est détectée par un des circuits ET 340 ou 342. Comme on le notera, les lignes entrant et quittant l'élément d'emmagasinage 20 représenté sur la figure B, sont les mêmes que celles représentées sur la figure 4B. C'est-à-dire, chaque bloc a quatre lignes de lecture/écriture verticales, deux lignes verticales associées une seule ligne horizontale "pas d'accord" et deux lignes horizontales lecture/écriture. On notera que les sorties de toutes les portes ET "pas d'accord" 340 et 342 sont reliées à la 25 ligne "pas d'accord". Ainsi, une position de bit quelconque dans un mot ne correspond pas à l'argument appliqué à ce bit pour chaque mot et un signal "pas d'accord" sera appliqué à la ligne, et comme cela sera apparent, une indication "pas d'accord" sur une ligne de mots donnée servira à remettre les indicateurs d'accord à "0". 30 La description précédente de la mémoire associative termine la descrip tion de la réalisation de l'invention. Il sera apparent pour l'homme de l'art que l'on peut apporter de nombreuses modifications de forme ou de détail à la réalisation décrite sans sortir du cadre et de l'esprit de l'invention. Un certain nombre de possiblités ont été énumérés précédemment. En plus, 35 on peut utiliser des dispositifs tels que des commandes supplémentaires pour bloquer une opération d'emmagasinage particulière pour un mot particulier, par exemple, un emplacement d'emmagasinage donné étant continuellement mis à jour par un type quelconque d'opérations en boucle ou répétées dans laquelle le mot sera modifié chaque fois que le système traverse la boucle. Par exem-40 pie, on peut utiliser un bit de commande pour bloquer l'opération d'emmagasi M 44502 20 2028347 nage à partir de la mémoire associative jusqu'à ce qu'une impulsion de restauration soit obtenue à partir du système indiquant que l'opération de la boucle est terminée. □e plus, des dispositifs peuvent être utilisés par exemple, pour réaliser 5 une opération d'emmagasinage directe, dans laquelle un cycle de mémoire dans la mémoire principale est simultanément' disponible et au lieu d'emmagasiner le mot simultanément dans la mémoire associative, cette opération peut être éliminée. Cependant, on pense que les commandes pour cette forme de fonctionnement seront assez compliquées. 10 Finalement, on comprendra que les termes vitesse élevée et vitesse faible, lorsqu'ils s'appliquent aux différentes mémoires sont simplement des vitesses relatives, et ne limitent pas l'invention. Cependant, il doit y avoir une différence importante dans la vitesse des deux mémoires, pour que la présente invention présente une utilité importante. 15 Bien que l'on ait décrit dans ce qui précède et représenté sur le dessin, 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. 20 44502 21 2028347 REVENDICATIONS 1.- Système de mise à jour de mémoires utilisable dans un système de traitement de données comprenant une première et une seconde mémoire? dans lesquelles les données sont groupées en premiers segments de données, et dans lesquelles chaque premier segment de données est composé de plusieurs seconds segments de données plus courts, un moyen pour transférer les segments de données à partir de la première mémoire dans la seconde mémoire à la demande de l'unité centrale du système de traitement et un moyen pour-accéder aux seconds segments de données à partir de la seconde mémoire pour les utiliser dans le système de traitement, ce système de mise à jour de mémoire étant caractérisé en ce qu'il comprend: - un moyen pour emmagasiner dans la seconde mémoire les seconds segments de données modifiés par le système de traitement de données, - un moyen pour indiquer lorsqu'un second segment de données emmagasiné dans la seconde mémoire a été modifié, et - un moyen pour écrire dans la première mémoire les segments de données modifiés, lorsque cette première mémoire dispose du temps nécessaire pour la réinscription de ces segments modifiés. 2.- Système de ise à jour de mémoires selon la revendication 1, caractérisé en ce que le moyen indiquant un second segment de données modifié comprend une mémoire associative, un autre moyen étant prévu pour emmagasiner ce second segment de données modifié dans la seconde mémoire et la mémoire associative lorsqu'il est ramené aux mémoires à partir de l'unité de traitement. 3.- Système de mémoires organisées par ordre hiérarchique qui peut être utilisé par un ordinateur électronique, ce système de mémoires comprenant une mémoire de grande capacité fonctionnant à vitesse relativement lente et une mémoire de faible capacité fonctionnant à vitesse relativement élevée, les données étant groupées dans les mémoires en premiers segments de données, chacun de ces premiers segments étant composé de plusieurs seconds segments de données adressables individuellement, caractérisé en ce qu'il comprend; - un moyen pour transférer les premiers segments de données, à partir de la mémoire fonctionnant à vitesse faible dans la mémoire fonctionnant à vitesse élevéee à la demande de l'unité de traitement de données, - un moyen pour transférer les seconds segments de données de la mémoire fonctionnant à vitesse élevée dans l'unité de traitement de l'ordinateur, à la demande, - un moyen pour ré-écrire le second segment de données modifié par l'or- 69 44S02 22 2028347 dinateur dans la mémoire fonctionnant à vitesse élevée, - un moyen pour indiquer que certains des seconds segments de données ont été modifiés, - un moyen pour ré-écrire dans la mémoire fonctionnant à vitesse lente 5 tous les seconds segments de données modifiés dans la mémoire fonctionnant à vitesse élevée, lorsque cette mémoire à vitesse lente dispose du temps nécessaire à la réinscription. 4.- Système de mémoires selon la revendication 3, caractérisé en ce qu'il comprend un moyen pour ré-écrire sur une base de priorité supérieure dans 10 la mémoire fonctionnant à vitesse lente tous les seconds segments de données modifiés compris dans un premier segment de données particulier lorsqu'il est nécessaire de remplacer par un autre segment ce premier segment de données dans la mémoire fonctionnant a vitesse élevée. 5.- Système de mémoires selon la revendication 3, caractérisé en ce que le 15 moyen pour indiquer que certains seconds segments de données ont été modifiés comprend une mémoire associative et un moyen pour emmagasiner simultanément tous les seconds segments de données modifiés dans la mémoire fonctionnant à vitesse élevée et dans la mémoire associative, et un moyen pour emmagasiner tous les seconds segments de données modifiés dans la mémoire fonctionnant 20 à vitesse faible à partir de la mémoire associative. B.- Système de mémoires selon la revendication 5, caractérisé en ce qu'il comprend un moyen pour emmagasiner dans la mémoire associative avec les seconds segments de données modifiés l'adresse à laquelle le second segment de données modifié est à emmagasiner dans la mémoire fonctionnant à vitesse 25 faible et-un moyen pour Identifier le premier segment de données auquel appartient un second segment de données modifié à partir de cette adresse. 7.- Système de mémoires selon la revendication 5 ou 6, caractérisé en ce qu'il comprend un moyen pour empêcher à l'ordinateur d'écrire un segment de données modifié dans la mémoire fonctionnant à vitesse élevée lorsqu'il n'y 30 ' a pas d'espace disponible pour l'écriture simultanée du second segment de données modifié dans la mémoire associative. 8.- Système de mémoires selon la revendication 5 ou 6 ou 7, caractérisé en ce qu'il comprend un moyen pour remplacer un premier second segment de données modifié emmagasiné dans la mémoire associative par une autre modification 35 dudit segment si le premier segment modifié n'a pas encore été ré-écrit dans 69 44S02 23 2028347 la mémoire fonctionnant à vitesse lents. 9.- Système de mémoires selon l'une quelconque des revendications 3, 5, 6, 7 ou 8, caractérisé en ce qu'il comprend un moyen qui agit à la détermination qu'un premier segment de données donné doit être remplacé dans la mémoire 5 fonctionnant à vitesse élevée pour ré-écrire immédiatement tous les seconds segments de données modifiés compris dans le premier segment de données dans la mémoire fonctionnant à vitesse lente sur une base de priorité supérieure et un moyen pour empêcher le transfert du nouveau premier segment de données dans la mémoire fonctionnant à vitesse élevée, jusqu'à ce que la dernière 10 opération de ré-écriture nommée soit terminée.