Brevet FR2474721A1 — publié le 19810731

2474721J La présente invention concerne une mémoire d'antémémoire perfectionnée avec des moyens d'effacement sélectif et de mise à jour des parties les moins récemment utilisées. Une grande partie des opérations exécutées par une unité centrale de traitement dans le déroulement d'un programme impliquent l'extraction et l'écriture de données dans la mémoi- re principale du système de traitement de données considéré. Dans des systèmes à plusieurs processeurs o plusieurs unités centrales de traitement CPU partagent toutes une mémoire commune, il arrive souvent qu'un ou plusieurs processeurs soient obligés d'attendre l'accès à la mémoire principale pendant qu'un autre processeur mobilise la mémoire pour une opération de lecture ou d'écriture. On voit par conséquent que la vitesse générale de traitement pourrait être améliorée si chaque processeur avait sa propre antémémoire particulière de données de laquelle il pourrait extraire des informations. C'est ainsi qu'a été conçue la mémoire d'antémémoire. Au début, on a adopté des versions telles que celle décrite dans le brevet des E.U.A. n0 3.866.183, déposé par la Demanderesse et concernant une configuration à "lecture à part" dans laquelle un cycle d'accès à la mémoire est déclenché tandis que l'antémémoire est contrôlée simultanément. Ensuite, si les données désirées sont présentesdans l'antémémoire, le cycle de mémoire est suspendu et les données sont extraites de l'antémémoire. De cette façon, aucun temps n'est perdu pour faire une recherche en antémémoire avant de lancer une opéra- tion d'accès à la mémoire. Les opérations de l'antémémoire sont considérées comme "invisibles" pour l'unité centrale CPU. Une dernière version décrite dans le brevet des E.U.A. n0 3.845.474, également déposé par la Demanderesse, concerne une antémémoire pourvue d'un dispositif d'effacement utilisable dans des systèmes à plusieurs processeurs. Cette antémémoire s'efface elle-même à chaque fois que son processeur a accès au module commun de système d'exploitation partagé par l'ensemble des processeurs. Toute l'antémémoire est aussi effacée à chaque fois que le processeur prend en charge une interruption extérieure, telle que celle se produisant lorsque des données sont chargées en mémoire principale à partir d'une mémoire auxiliaire. Cette disposition a pour effet un efface- ment excessif de l'antémémoire et ralentit des opérations du processeur en nécessitant davantage d'accès à la mémoire prin- cipale à cause d'un "taux de mouvement" inférieur; c'est-à-dire que la probabilité de trouver les données désirées dans l'antémémoire est diminuée en raison de la fréquence de tout l'effacement de l'antémémoire. Le brevet cité plus haut con- cerne aussi un compteur à "permutation circulaire pour la commande des opérations d'écriture de mémoire d'antémémoire. Les premières données écrites dans l'antémémoire sont ainsi écrites dans une première section d'un bloc particulier de la mémoire d'antémémoire, et les bits de leur adresse drapeau associée sont écrits dans le premier niveau correspondant de la colonne correspondante du répertoire. Ensuite, chaque groupe de données venant à la suite est écrit dans l'emplacement séquentiel suivant. Pour une antémémoire à quatre niveaux, les données d'entrée sont donc écrites dans les sections 1, 2, 3, 4, 1.... Il est évident que cette conception ne tient pas compte de la fréquence relative de l'usage des quatre niveaux de manière que le mot de données le plus fréquemment utilisé dans une rangée particulière de blocs puisse être déplacé par un mot de données d'entrée après une absence de correspondance d'antémémoire. Plus récemment, un moyen pour éliminer l'effacement-non nécessaire de l'antémémoire a été décrit dans la demande de brevet des E.U.A. nO 968.223, déposée le 11 décembre 1978 par la Demanderesse. Cette demande de brevet décrit un dispositif utilisant un répertoire en double pour comparer les adresses drapeaux des données dans l'antémémoire aux adresses donnés en rincipale drapeaux de données en mémoirPe/qui ont été changées par un autre processeur du système. Dans Je cas d'une correspondance, l'emplacement des données hors d'usage dans l'antémémoire est marqué comme vide. Cette conception représente un progrès par élimination d'une grande partie de l'effacement non nécessaire de l'antémémoire et permet par conséquent d'augmenter la vitesse de traitement. Cependant, le principe de permutation 2474721' circulaire pour effectuer de nouvelles écritures dans l'anté- mémoire est utilisé dans cette demande de brevet, ce qui fait que le problème de déplacement des données souvent utilisées en provenance de l'antémémoire n'est encore pas résolu. Un dispositif pour la mémorisation hiérarchique de données extraites d'une mémoire pour une absence de correspon- dance d'antémémoire est décrit dans le brevet des E.U.A. no 3.967.247. Une conception du moins récemment utilisée pour déplacer des données de l'antémémoire pour extraction à partir de la mémoire principale après une absence de correspondance d'antémémoire est décrite dans cette demande. Un drapeau à deux bits de vieillissement est affecté à chacun des quatre niveaux de l'antémémoire pour indiquer les temps relatifs de dernière référence à chaque donnée. Après chaque correspondance, un réseau de comparateurs examinent le niveau de correspondance et les bits de vieillissement de chaque niveau. Le réseau met ensuite à jour les bits de vieillissement pour chaque niveau en utilisant un réseau d'additionneurs. Cet algorithme est différent de celui de la présente invention et les circuits mis en oeuvre sont plus compliqués, plus lents et plus coûteux. Ainsi il semble nécessaire qu'une mémoire d'antémémoire appropriée pour être utilisée dans un système à plusieurs processeurs ne doit pas être complètement effacée chaque fois cp'un autre processeur change un mot de données dans la mémoire principale, et qu'elle ne doit déplacer que la donnée la moins récemment utilisée dans une colonne de données après une absence de correspondance d'antémémoire. Bien que la présente invention soit mise en oeuvre dans une disposition complexe d'éléments matériels, sa conception est très simple. Fondamentalement, la présente invention consiste à augmenter la vitesse et l'exactitude des disposi- tions connues de mémoire d'antémémoire en améliorant le taux de mouvement et en n'effaçant de façon sélective que les informations de l'antémémoire qui ont été changées dans la mémoire principale à la suite d'une écriture dans l'antémémoire. L'augmentation du taux de mouvement signifie l'augmentation de la proportion des demandes d'accès faites par une unité 2474721: centrale de traitement pour des données qui sont trouvées dans la mémoire d'antémémoire fonctionnant rapidement, ce qui rend inutile tout accès à la mémoire principale plus lente. Un effacement sélectif n'a une signification que dans un système à plusieurs processeurs o deux unités centrales de traitement ou plus partagent une mémoire principale commune. Dans ce cas, une unité centrale de traitement CPU peut mettre à jour dans la mémoire principale une donnée qui est contenue dans la mémoire d'antémémoire d'une ou plusieurs autres unités CPU du système. Comme il n'y a plus de correspondance entre la donnée en mémoire principale et la donnée en antémémoire, la donnée hors d'usage doit être indiquée comme non présente dans une antémémoire o elle est mémorisée. Une unité centrale de trai- tement CPU souhaitant utiliser cette donnée est alors obligée d'avoir accès à la mémoire principale de laquelle elle-reçoit la donnée la plus à jour. On obtient une vitesse encore accrue par une configura- tion d'antémémoire établissant une relation de "lecture à part" avec les autres unités de l'unité centrale CPU. Par le terme "lecture à part", on entend que l'antémémoire est en relation avec le reste de l'unité CPU de sorte que l'interro- gation du répertoire d'antémémoire est faite en même temps que la préparation établie par l'unité CPU pour sélectionner une porte d'accès afin d'avoir accès à la mémoire principale par cette porte.lVec cette disposition, il n'y a pas de retard entre l'accès à la mémoire principale et l'interrogation du répertoire d'antémémoire. En effet, quand une "correspondance" se produit dans l'antémémoire, le signal indiquant ce fait est utilisé pour empêcher qu'un accès à la mémoire soit déclenché. Une telle disposition a pour effet de rendre le fonctionnement de la mémoire d'antémémoire invisible pour l'unité CPU par le fait que peu ou pas de temps n'est perdu par l'unité CPU qui extrait des données grâce à la présence de l'antémémoire. Une augmentation du taux de mouvement se traduit par une vitesse accrue d'extraction des données par l'unité CPU car la mémoire d'antémémoire comporte des pastilles plus rapides que 2474721: celles utilisées dans la mémoire principale. Ce taux de mouve- ment augmenté est obtenu par l'utilisation d'une conception pour les parties les moins récemment utilisées de mise à jour de l'antémémoire et par l'utilisation d'un dispositif d'effa- cement sélectif. Le problème posé par les compteurs à permu- en tation circulaire connus est résolu/conservant dans l'antémé- moire un enregistrement du niveau qui a été le moins récemment utilisé. Des données en entrée sont alors écrites dans ce niveau le moins récemment utilisé. Le taux de mouvement doit augmenter et augmente effectivement en utilisant cette concep- tion. Une augmentation de vitesse et une meilleure exactitude sont obtenues à l'aide d'un dispositif d'effacement sélectif. Le problème d'un effacement excessif est éliminé dansla présente invention en retenant l'idée d'un dispositif d'effa- cement sélectif qui reçoit les adresses desdonnées de mémoire principale qui ont été changées par une autre unité CPU et qui compare ces adresses avec les adresses des données présen- tes dans la mémoire d'antémémoire. A chaque correspondance, un signal d'effacement est engendré et permet de marquer l'emplacement de données de correspondance dans la mémoire d'antémémoire comme étant vide dans une matrice de pleins/ vides. Cette disposition accroit le taux de mouvement en augmentant la probabilité qu'une donnée une fois écrite dans l'antémémoire se trouve encore dans l'antémémoire. Dans l'exemple de réalisation le plus simple de la présente invention qui est utilisable dans un système de traitement de données à une seule unité centrale de traitement CPU, une mémoire d'antémémoire est utilisée pour enregistrer et donner accès à un ensemble de mots de données utilisés par l'unité CPU dans ses opérations. Ces mots de données peuvent être des codes opération d'instruction, des opérandes et des adresses et être écrits dans un ensemble de sections qui sont chacune divisées en un ensemble de blocs. Un répertoire est utilisé pour indexer les données qui sont contenues dans la mémoire d'antémémoire en mémorisant treize bits d'adresse drapeau de l'adresse absolue identifiant 2474721' l'emplacement en mémoire principale de ces données. Ces bits d'adresse drapeau sont contenus dans un emplacement du réper- toire associé à et correspondant au bloc particulier dans lequel les données associées sont mémorisées. On peut utiliser un nombre de bits d'adresse drapeau supérieur ou égal à treize. Le répertoire est organisé en un ensemble de niveaux dont chacun correspond à une section de la mémoire d'antémémoire. Chaque niveau est lui-même divisé en un ensemble de colonnes dont chacune correspond à un groupe de blocs de la mémoire d'antémémoire, c'est-à-dire qu'il y a autant de blocs dans une section de la mémoire d'antémémoire qu'il y a de colonnes dans un niveau du répertoire principal. Le nombre de niveaux dans une colonne correspond exactement au nombre de sections dans la mémoire d'antémémoire. La fonction du répertoire principal est de mémoriser les bits d'adresse drapeau de chaque mot de données se trouvant dans la mémoire d'antémémoire et de compa- rer ces bits d'adresse drapeau aux bits d'adresse drapeau de l'adresse absolue des données qui sont demandées par l'unité: CPU. Un signal de correspondance est alors engendré quand les données demandées sont présentes dans la mémoire d'antémémoire. Enfin, il est prévu un moyen de commande pour recevoir et mémoriser des données mises à jour par usage des niveaux de toutes les colonnes et pour déterminer le niveau le moins récemment itilisé dans le répertoire principal quand il n'y a pas de correspondance. Ce dispositif permet aussi d'extraire les informations demandées de la mémoire principale et de les envoyer à l'unité CPU quand il y a absence-de correspondance d'antémémoire. En même temps que les informations sont envoyées à l'unité CPU, elles sont chargées dans la mémoire d'antémé- moire et leurs bits d'adresse drapeau correspondants sont chargés dans le niveau le moins récemment utilisé du réper- toire principal. Dans des systèmes à plusieurs processeurs, l'invention est réalisée à partir des éléments précédents avec en plus un dispositif d'effacement sélectif. Ce dispositif comprend un répertoire en double organisé d'une manière semblable au répertoire principal. Sa fonction est de mémoriser les mêmes 2474721' informations indexées que celles mémorisées dans le répertoire principal et de comparer ces bits d'adresse drapeau aux bits d'adresse drapeau des adresses absolues des données en mémoire principale qui ont été changées par une autre unité CPU du système. Quand une correspondance indique qu'un mot de données dans la mémoire d'antémémoire est maintenant hors d'usage, ce dispositif d'effacement sélectif engendre un signal d'efface- ment qui marque l'emplacement/ dnorsro dnxsasge comme vide. D'autres caractéristiques et avantages de la présente invention seront mis en évidence dans la description suivante, donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels: Figure 1 est un schéma d'un système de traitement de données à deux processeurs partageant une mémoire principale; Figure 2 est un schéma fonctionnel d'une section de mémoire d'antémémoire de chaque processeur de la figure 1; Figure 3 est une représentation de plan de mémoire montrant la correspondance entre des emplacements d'un réper- toire principal et des emplacements de la mémoire d'antémémoire selon la présente invention; Figure 4 est un schéma des circuits constituant un dispositif de mise à jour de parties les moins récemment utili- sées, conforme à l'invention; Figure 5 est un schéma représentant le système de codage des parties les moins récemment utiliséesconforme à l'invention; Figure 6 est un schéma logique d'une pastille de matrice logique de champ programmable FPLA selon l'invention; Figure 7 et Figure 8 sont les parties d'une table de vérité représentant la fonction de transfert des pastilles FPLA. Dans les systèmes de traitement de données actuels, l'ensemble des processeurs qu'ils contiennent sont très souvent connectés à une seule unité de commande de système, comme l'indique la Figure 1, dansle but d'accroître la capacité de traitement du système. Les processeurs 1 et 2 de la Figure 1 sont chacun reliés à une unité de commande de système 10 qui met ces processeurs en liaison avec une mémoire principale 20. Chaque processeur contient aussi sa propre mémoire d'antémémoire 2474721] individuelle 30 dans laquelle sont mémorisées des.données, des adresses et des instructions que le processeur utilise couram- ment.Un répertoire en double 31 est associé à chaque mémoire d'antémémoire et sert à permettre la comparaison entre des données dans la mémoire d'antémémoire du processeur 1 et des données changées dans la mémoire 20 par le processeur 2 de façon que le processeur 1 n'extraie pas des données hors d'usage de sa mémoire d'antémémoire mais qu'il extraie la version la plus à jour de ces données de la mémoire principale 20. Chaque processeur comporte également une.unité d'opérations 32 qui exécute des opérations arithmétiques et logiques sur des opérandes dans un programme. Ces opérandes sont initiale-. ment écrits et lus dans la mémoire principale 20, mais ils. sont écrits dans la mémoire d'antémémoire 30 à leur première lecture en mémoire principale. Ensuite, ils peuvent être extraits de la mémoire d'antémémoire jusqu'à ce que les emplacements dans lesquels ils sont contenus soient marqués comme étant vides grâce à une opération d'effacement sélectif ou jusqu'à ce qu'ils soient déplacés par d'autres données extraites de la mémoire principale 20 à la suite d'une détec- tion d'absence de correspondance d'antémémoire. Chaque processeur comporte aussi une unité de commande de porte 33 qui sert à coordonner des échanges de données entre le processeur et la mémoire principale 20 et d'autres périphé- riques d'entrée/sortie commandés par un contrôleur d'entrée/ sortie 34. La Figure 2 est un schéma fonctionnel de la présente invention. L'adresse absolue des données demandées, telle qu'elle est préparée par l'unité CPU, est transférée dans un verrou d'adresse d'antémémoire 56 par l'intermédiaire d'un commutateur 57. La partie essentielle de la présente invention est constituée par la combinaison de trois sous-systèmes majeurs. Le premier sous-système est utilisé pour mémoriser et donner accès aux nombreux mots de données utilisés par l'unité CPU dans ses opérations. Une mémoire d'antémémoire 40, un premier commutateur 41, un second commutateur 42, et un verrou de données 43 constituent ce premier sous-système. L'organisation de ce premier sous-système est la suivante. On voit, sur la Figure 3, que la mémoire d'antémémoire 40 est constituée de quatre sections dont chacune est divisée en 512 blocs adressables individuellement, chaque bloc contenant quatre mots. Cbaque mot a une longueur de 36 bits. La mémoire d'antémémoire 40 comporte une entrée d'adresse à onze bits pour recevoir le signal d'adresse de mémoire d'antémémoire par une ligne 44, ce signal correspondant aux bits 13 à 23 de l'adresse absolue des données demandées. Une autre entrée représentée sur la Figure 2 reçoit le signal d'échantillonnage de niveau sur une ligne 45. Ce signal détermine avec le signal d'adresse de mémoire d'antémémoire quelle section et quel bloc doivent recevoir des données arrivant à une entrée de données 46. Les données d'entrée sur la ligne 46 sont transférées par le premier commutateur 41 qui comporte deux entrées. Les données à écrire dans la mémoire d'antémémoire 40 sont les données résultant soit d'une opération d'écriture de CPU, soit d'une lecture en mémoire principale après la détection d'une absence de correspondance d'antémémoire. Pour des opérations d'écriture de CPU, les données arrivent par une ligne 47 tandis que les données résultant d'un cycle de lecture de mémoire principale arrivent par une ligne 48. La fonction du commutateur 41 est de sélectionner laquelle de ces lignes doit être connectée à l'entrée de données de la mémoire d'antémémoire 40 avec une sélection faite sous la commande d'un circuit de commande d'antémémoire 49 par un signal de commande sur la ligne indiquée par "au premier commutateur". Le second commutateur 42 a une entrée de données séparée qui est reliée à la sortie de données de chaque section de la mémoire d'antémémoire 40. Il comporte aussi une entrée de données reliée à la ligne 48 pour recevoir des données extraites de la mémoire principale après une détection d'absence de correspondance d'antémémoire. Le second commuta- teur 42 comporte une seule ligne de sortie de données 50 de soixantedouze bits de largeur, et une entrée de commande pour recevoir un signal de sélection de bloc sur une ligne 51 à partir/ cmmanle d'antémémoire 49. La fonction du commuta- 2474721 ' teur 42 et du signal de sélection de bloc sur la ligne 51 est de commander celle des lignes d'entrée mentionnées plus haut qui est reliée par le commutateur à la seule ligne de sortie. Ainsi, le circuit de commande d'antémémoire 49 permet le transfert des données de sortie de paire de mots doubles à soixante-douze bits de l'une des quatre sections de la mémoire d'antémémoire 40 à la sortie du second commutateur 42 si une correspondance d'antémémoire a été détectée pour ce niveau particulier. Dans le cas d'une absence de correspondance, les données extraites de la mémoire principale sont alors transférées à la sortie du second commutateur 42 par l'intermédiaire de la ligne 48 et elles sont transférées simultanément à la sortie du premier commu- tateur 41 et dans la mémoire d'antémémoire 40 pour y être mémorisées. L'emplacement exact o les données sont mémorisées dans la mémoire d'antémémoire 40 est commandé par les signaux sur les lignes 44 et 45, conformément à un algorithme du "moins récemment utilisé", qui sera décrit plus en détail dans la suite. Le verrou de données 43 comporte une entrée de données reliée par la ligne 50 au second commutateur 42 et une ligne de sortie de données 52 pour transmettre des données à l'unité CPU.I1 comporte aussi une entrée de commande reliée par une ligne de chargement de signaux 53 au circuit de commande d'antémémoire 49. La fonction du verrou de données 43 est de conserver les données provenant de la mémoire d'antémémoire 40 ou extraites de la mémoire principale jusqu'à ce que l'unité CPU puisse les lire. Le chargement du verrou de données 43 est commandé par la ligne de charge- ment de signaux 53. Le second sous-système est le répertoire principal 54, un comparateur 55 et les circuits associés nécessaires pour valider ces dispositifs pour qu'ils assurent leur fonction. La fonction du-répertoire principal 54 est de mémoriser des adresses drapeaux qui identifient les mots de données en mémoire principale qui sont également contenus dans la mémoire d'antémémoire 40. Le comparateur 55 sert à comparer les 2474721 '3 adresses drapeaux contenues dans le répertoire principal 54 aux adresses drapeaux des mots de données demandés par l'unité CPU et à engendrer une information de correspondance quand le mot de données demandé est présent dans la mémoire d'antémémoire 40. L'information de correspondance indique le niveau d'antémémoire qui contient le mot de données demandé. Par l'expression "niveau d'antémémoire", on se réfère à l'organisation d'ensemble du répertoire principal 54 et de la mémoire d'antémémoire 40. Comme le montre la figure 3, quand la mémoire d'antémémoire 40 est divisée en quatre sections, le répertoire principal 54 est également divisé en quatre niveaux. On voit, sur la Figure 3, que le niveau A du répertoire principal 54 correspond à la section O de la mémoire d'antémémoire 40 et ainsi de suite. Quand chaque section de la mémoire d'antémémoire 40 est divisée en un ensemble de blocs, chaque niveau du répertoire principal 54 est également divisé en un ensemble de colonnes. Ainsi, chaque colonne d'un niveau donné correspond à un bloc parti- culier de la section correspondante. On voit donc que chaque colonne du répertoire principal 54 comporte quatre niveaux dont chacun correspond à un bloc d'une des quatre sections de la mémoire d'antémémoire 40. Chaque bloc contient quatre mots de trente-six bits. Dans l'exemple de réalisation préféré de l'invention, il y a 512 blocs dans chaque section de la mémoire d'antémémoire 40. Ainsi, il y 2048 mots contenus dans chaque section et chaque mot a une adresse à onze bits. Le format de l'adresse absolue des données demandées, qui est préparée par l'unité CPU, est illustré dans le coin gauche inférieur de la Figure 3. Cette adresse absolue est transférée par un commutateur 57 de la Figure 2 dans un verrou d'adresse d'antémémoire 56. Elle y est mémorisée temporairement en vue d'une utilisation par les éléments de la mémoire d'antémémoire. Le commutateur 57 sert à fournir des adresses absolues au verrou d'adresse d'antémémoire 56 à partir d'autres parties du système de traitement de données, telles qu'un panneau de maintenance ou une unité virtuelle dans un mode de fonctionnement à mémoire virtuelle. Les treize bits de poids 2474721 d fort de cette adresse absolue sont les bits d'adresse drapeau. Ces treize bits (0-12) sont suffisants pour identifier 8192 mots de données individuels qui correspondent aussi au nombre de mots de données contenus dans la mémoire d'antémé- moire 40. Les neuf bits suivants, c'est-à-dire les bits 13 à 21,servent d'adresse bloc/colonne. Ces neuf bits sont suffi- sants pour identifier 512 emplacements différents qui corres- pondent au nombre de blocs et de colonnes dans la mémoire d'antémémoire et le répertoire principal. Les deux derniers bits de l'adresse à vingt-quatre bits sont les bits 22 et 23. Ces bits identifient quelle paire de mots ou quel mot indivi- duel est demandé par l'unité CPU. Le verrou d'adresse d'anté- mémoire 56 de la Figure 2 peut ainsi être considéré comme divisé en trois parties. La première partie contient les treize bits de l'adresse drapeau. Les seconde et troisième parties contiennent l'adresse de bloc/colonne et les deux bits de désignation de mot, respectivement. Le répertoire principal 54 est chargé avec des adresses drapeaux par une ligne 57 reliant l'entrée de données du répertoire principal 54 à la première partie du verrou d'adresse d'antémémoire 56. La mémoire d'antémémoire 40 est chargée par bloc avec quatre mots en même temps quand les données sont extraites de la mémoire principale par l'inter- médiaire de la ligne 48 ou pendant des opérations d'écriture d'unité CPU par l'intermédiaire de la ligne 47. Les données sont extraites de la mémoire principale après la détection d'une absence de correspondance d'antémémoire, tandis que des opérations d'écriture d'unité CPU résultent de différentes instructions de programme.Une opération d'écriture d'unité CPU implique un transfert simultané d'un bloc de données dans la mémoire principale et dans la mémoire d'antémémoire 40. Pendant un type de chargement, une adresse absolue a été préparée par l'unité CPU comme définissant l'adresse de la mémoire principale o écrire le bloc de données ou comme définissant l'adresse des données demandées dans la mémoire principale. Quand chaque bloc de données est chargé dans la mémoire d'antémémoire 40, les treize bits de poids fort de 2474721t l'adresse absolue pour ces données sont simultanément chargés dansle répertoire principal 54. La colonne du répertoire principal 54 dans laquelle cette adresse drapeau est chargée, est déterminée par les bits d'adresse de colonne (13-21) de l'adresse absolue contenue dans la secondepartie du verrou d'adresse d'antémémoire 56. Ces bits sont envoyés à l'entrée d'adresse de lecture/écriture du répertoire principal 54 par l'intermédiaire de la ligne 58. Le niveau de la colonne sélectionnée dans laquelle l'adresse drapeau est mémorisée est commandé par le circuit de commande d'antémémoire 49 par le signal d'échantillonnage de niveau transmis par une ligne 59. Pareillement, le bloc dans lequel les données d'entrée sont mémorisées dans la mémoire d'antémémoire 40 est commandé par la ligne d'adresse de mémoire d'antémémoire 44 reliant la seconde partie du verrou d'adresse d'antémémoire 56 à l'entrée d'adresse de lecture/écriture de la mémoire d'antémémoire 40. La section est commandée par le signal d'échantillonnage de niveau transmis par la ligne 45 en provenance du circuit de commande d'antémémoire 49. L'extraction de données de la mémoire d'antémémoire impli- que la comparaison de l'adresse drapeau des données demandées par l'unité CPU aux adresses drapeaux dans le répertoire principal 54. La seconde partie du verrou d'adresse d'antémé- moire 56 contient l'adresse de colonne des données demandées et elle est reliée à l'entrée d'adresse de lecture/écriture du répertoire principal 54 par la ligne 58. Les adresses drapeaux contenues dans les quatre niveaux de la colonne sélectionnée du répertoire principal sont ainsi envoyées aux premières entrées de données du comparateur 55 par l'intermé- diaire de quatre lignes de sortie de données 120. Les secondes entrées de données du comparateur 55 sont reliées à la première partie du verrou d'adresse d'antémémoire 56 par l'intermédiaire d'une ligne 60. Le comparateur 55 compare l'adresse drapeau des données demandées aux adresses drapeaux contenues dans les quatre niveaux de la colonne sélectionnée, et engendre un signal de correspondance pour le niveau ou une correspondance est trouvée. Ces signaux de correspondance sont envoyés au circuit de commande d'antémémoire 49 et sont utilisés par ce circuit pour engendrer le signal de sélection de bloc sur la ligne 51. Ce signal de sélection de bloc actionne le second commutateur 42 de manière que les données dans le bloc et la section correspondants du niveau de correspondance soient transférées de la sortie de données de la mémoire d'antémémoire dans le verrou de données 43. En l'absence d'un signal de correspondance en provenance du comparateur 55, le circuit de commande d'antémémoire 49 engendre un signal d'absence de correspondance sur une ligne 62. Ce signal ordonne à un circuit de commande de porte 63 d'engendrer le signal d'interruption d'échantillonnage sur une ligne 64 pour que les données demandées soient extraites de la mémoire principale. Ce signal sort en direction des unités de commande de système qui remplissent des fonctions d'interfaces entre l'unité CPU et la mémoire principale. Quand les données sont extraites de la mémoire principale, elles apparaissent sur la ligne 48 à l'entrée du premier commutateur 41. Simultanément, elles sont transférées à une autre entrée de données du second commutateur 42 par l'inter- médiaire du prolongement de la ligne 48. Quand les données ont été extraites, le signal $DA sur tune ligne 65 est envoyé du circuit de commande de porte 63 au circuit de commande d'antémémoire 49. Le circuit de commande d'antémémoire commande alors le transfert des données sur la ligne 48 par le second commutateur 42 à l'aide du signal de sélection de bloc transmis par la ligne 51. Il commande aussi le chargement de ces données dans le verrou de données 43 par le signal de chargement sur la ligne 53. Enfin, il engendre dans une Ligne 66 un signal de données disponibles qui indique à l'unité CPU que les données demandées ne se trouvent pas dans le verrou de données 43. On suppose maintenant qu'il s'est produit une correspon- dance et que les données demandées ont été extraites de la mémoire principale et sont prêtes à être écrites dans la mémoire d'antémémoire. Leur adresse drapeau correspondante est dans ce cas prête à être écrite dans le répertoire princi- 2474721' pal. Les colonnes du répertoire principal et de la mémoire d'antémémoire o ces deux informations de données et d'adresse doivent être écrites sont déterminées par la partie d'adresse de colonne et la seconde partie du verrou d'adresse d'antémé- moire 56. La ligne 58 transmet l'information de colonne sélectionnée au répertoire principal 54 et la ligne 44 transmet la même information à la mémoire d'antémémoire 40. Un niveau dans le répertoire principal et une section dans la mémoire d'antémémoire doivent être aussi sélectionnés. Le processus mis en oeuvre dans le sous-système matériel pour trouver les parties les moins récemment utilisées consiste à chercher d'abord les niveaux vides pour y mémoriser les données quand un niveau vide a été trouvé. S'il n'y a pas de niveau vide, le circuit de commande d'antémémoire détermine le niveau le moins récemment utilisé et déplace les données dans celui-ci avec les données extraites de la mémoire principale. Une analyse statistique montre qu'un tel procédé augmente la vitesse globale des opérations de l'unité CPU par rapport à un procédé de déplacement par permutation circulaire.car il diminue la proportion d'absences de correspondance pour un nombre donné d'accès à la mémoire. Des études de fonctionnement d'un calculateur avec des programmes montrent qu'un mot de données qui est utilisé plus souvent qu'un autre mot de données a une plus grande probabilité d'être réutilisé. Puisque les pastilles de mémoire de l'antémémoire sont plus rapides que celles de la mémoire principale, un taux de mouvement supérieur signifie un fonctionnement plus rapide. Le sous-système matériel de détermination de niveau le moins récemment utilisé, conformément à l'invention, est représenté en détail sur la Figure 4. Si l'on se réfère aux Figures 2, 4 et 5, le fonctionnement du système est le suivant. La première opération que doit exécuter le circuit de commande d'antémémoire 49 est de contrôler si des niveaux de la colonne sélectionnée du répertoire principal 54 sont marqués comme vides. Pour effectuer ce contrôle, le circuit contrôle une matrice de pleins/vides 66. Dans l'exemple de réalisation préféré de la présente invention, cette matrice est une mémoire 2474721 1 à accès sélectif de 4x512 bits. Un commutateur 67 a une sortie reliée à l'entrée d'adresse de la matrice de pleins/vides 66, et une autre sortie connectée à l'entrée de données de la matrice. Les signaux d'entrée de ce commutateur constituent un signal d'adresse de plein/vide composé des bits 13 à 21 de l'adresse absolue contenue dans le verrou d'adresse d'antémé- moire 56. Ces bits provenant de la seconde partie du verrou d'adresse d'antémémoire sont envoyés au commutateur 67 par l'intermédiaire d'une ligne 69. L'autre entrée du commutateur reçoit le signal d'effacement par la ligne 68 reliée au circuit de commande d'antémémoire. Ce signal se compose de deux parties neuf bits qui désignent laquelle des cinq cent douze rangées de la matrice de pleins/vides doit être adressée; et deux bits qui indiquent quel bit de la rangée sélectionnée doit être. effacé. La fonction du commutateur 67 est de commuter l'adresse de plein/vide ou le signal d'effacement vers l'entrée d'adresse de la matrice de pleins/vides. L'entrée de données de la matrice de pleins/vides est conditionnée pour effacer le bit sélectionné. La sortie de données de la matrice est le signal de niveau plein/vide sur une ligne 70 reliée au circuit de commande d'antémémoire 49. Chaque rangée de la matrice de pleins/vides 66 correspond à une colonne du répertoire princi- pal 54. Afin de contrôler quels sont les niveaux vides dans une colonne particulière, le circuit de commande d'antémémoire 49 commande le transfert de l'adresse de plein/vide sur la ligne 69 par le commutateur 67 en direction deli'entrée d'adresse 71 de la matrice de pleins/vides. La matrice engendre alors les données de la rangée sélectionnée à la sortie de données comme signal de niveau plein/vide F/E. Cet état de chacun des quatre bits est alors lu par le circuit de commande d'antémémoire 49 pour déterminer s'il y a des niveaux vides dans les colonnes correspondantes du répertoire principal 54. S'il y en a, un signal d'échantillonnage de niveau sur la ligne 59 est engendré pour que l'adresse drapeau de la première partie du verrou d'adresse d'antémémoire 56 soit dirigée par la ligne 57 dans le niveau vide de la colonne sélectionnée par l'adresse transmise par la ligne 58. Si, après que la dernière opérationî'été exécutée, aucun niveau vide n'est détecté, le circuit de commande d'antémémoire 49 lit alors la matrice LRU ("moins récemment utilisé") 72 pour déterminer le niveau le moins récemment utilisé. La matrice LRU est une mémoire à accès sélectif de 6 x 512 bits, dans l'exemple de réalisation préféré de l'invention. Sa fonction est de mémoriser un ensemble de bits qui constituent le code du niveau le moins récemment utilisé de chaque colonne du répertoire principal 54. Dans l'exemple de réalisation préféré de l'inven- tion, la mémoire est constituée par cinq cent douze rangées dont chacune correspond à une colonne particulière du répertoire principal 54. Les six bits de chaque rangée représentent le nombre de combinaisons possibles pour quatre éléments pris par deux à la fois. Chaque bit représente l'intervalle de temps relatif d'un dernier usage, par exemple entre deux des quatre niveaux d'une colonne particulière du répertoire prin- cipal 54. La Figure 5 permet de comprendre plus complètement le concept d'usage relatif. Plusieurs combinaisons de bits représentant différents niveaux du répertoire principal qui ont été utilisés le moins récemment sont représentées sur cette figure. Le premier bit d'une rangée représente un étattel que celui existant entre les niveaux A et B (ou 1 et 2) du réper- toire principal et de la mémoire d'antémémoire. Le second bit représente un état tel que celui entre les niveaux A et C, et le troisième bit représente un état tel que celui entre les niveaux A et D, et ainsi de suite. Un zéro dans une position de bit particulière signifie que le premier niveau a été utilisé puisque le second niveau a été utilisé en dernier. Une valeur un dans une position de bit indique la condition inverse. Ainsi, sur la première ligne des codes indiqués, le niveau A a été utilisé depuis la dernière utilisation du niveau B, le niveau A a été utilisé depuis la dernière utilisation du niveau C, le niveau A a été utilisé plus récemment que le niveau D, le niveau B plus récemment que le niveau C, le niveau B plus récemment que le niveau D, et le niveau C plus récemment que le 2474721 1 le niveau D. Ce code indique que le niveau D est le niveau le moins récemment utilisé. Au contraire, le second niveau de code indique que le niveau A est le niveau le moins récemment utilisé puisque les "un " placés dans les trois premières positions de bits signifient que le niveau A n'a pas été utilisé depuis la dernière utilisation des niveaux B ou C ou D. Chaque fois qu'une correspondance a été détectée pour un niveau particulier, le code de ce niveau est mis à-jour pour indiquer cu'il est le plus récemment utilisé. Pour effectuer cette opération, la combinaison de bits convenable est forcée dans les trois bits de la matrice LRU 72 pour la rangée- correspondant à cette colonne. La combinaison de bits mémorisée représente l'état entre le niveau de correspondance et tous les autres niveaux. Ainsi, pour une correspondance du niveau B, un bit mis à un est forcé dans la position AB et un bit mis à zéro est forcé dans les positions BC et CD. Cela indique que le niveau A n'a pas été utilisé puisque-le niveau B a été utilisé en dernier, et que le niveau B a été utilisé puisque les niveaux C et D ont été utilisés en dernier. Les bits de la matrice LRU sont mis à jour également en cas de détection d'absence de correspondance, mais la séquence des;opérations est légèrement différente. Le circuit de commande d'antémémoire 49 lit d'abord la matrice de pleins/vides pour déterminer s'il y a des niveaux vides dans la colonne sélec- tionnée. S'il y en a, le niveau vide est rempli et le code de matrice LRU est mis à jour pour marquer ce niveau comme le plus récemment utilisé. S'il n'y a pas de niveaux vides, le circuit de commande d'antémémoire 49 lit les bits de matrice LRU pour la colonne sélectionnée afin de déterminer son niveau le moins récemment utilisé. Quand les données proviennent de la mémoire principale, elles sont écrites dans la section de la mémoire d'antémémoire 40 correspondant au niveau le moins récemment utilisé. Les bits d'adresse drapeau correspondants sont ensuite écrits dansle niveau le moins récemment utilisé du répertoire principal 54, et le circuit de commande d'antémémoire 49 met à jour les bits de matrice LRU pour la colonne sélectionnée pour marquer le niveau juste chargé comme le plus récemment 2474721 ' utilisé. Le système à matrice LRU pour déterminer les niveaux les moins récemment utilisés selon la présente invention, est réalisé avec des circuits très simples. Sur la Figure 4, un verrou de LRU 73 reçoit le signal d'adresse de LRU (bits 13 à 21) de la seconde partie de l'adresse absolue contenue dans le verrou d'adresse d'antémémoire 56 par l'intermédiaire d'une ligne 74. Le verrou de LRU sert à maintenir l'adresse de LRII à l'entrée d'adresse 75 de la matrice LRU 72 par une ligne 76. La sortie de données de la matrice engendre le signal de niveau LRU sur une ligne 77 qui est reliée au circuit de commande d'antémémoire 49. Le circuit de commande d'antémémoi- re 49 mémorise temporairement les six bits de LRU pour la rangée adressée dans une bascule d'hexadécimal 78.- Une matrice logique de champ programmable FPLA, désignée par 79, convertit, quand une absence de correspondance est signalée par le signal de chargement de bloc sur une ligne 81, les six bits de LRU en signaux d'échantillonnage de niveau transmis par le bus 59. Cependant, si le signal de niveau F/E sur la ligne 70 indique qu'il y a un niveau vide, les signaux d'échantillonnage de niveau sur le bus 59 dirigent les données extraites dans le niveau vide. La matrice FPLA met à jour également les bits de LRU correspondant au niveau qui vient d'être chargé. Cette mise à jour est effectuée par l'écriture de la combinaison de bits convenable dans la matrice LRU par les signaux de mise à jour de données de LRU transmis par un bus 80. Les bits de LRU mémorisés pour la colonne affectée indiquent alors que ce niveau est le plus récemment utilisé. Le signal d'échantil- lonnage de niveau sur la ligne 59 est cependant dirigé vers un niveau vide, si le signal de niveau F/E sur la ligne 70 indique qu'il y a des niveaux vides. La matrice logique de champ programmable 79 est informée qu'il ya eu une absence de correspondance détectée par le signal de chargement de bloc sur la ligne 81. Ce signal provient d'un indicateur de "corres- pondance/absence de correspondance" dans une autre partie du circuit de commande d'antémémoire non représentée. Les autres parties du circuit de commande d'antémémoire 2474721 ' étant d'une conception connue de l'homme de l'art, elles ne sont pas décrites dans la suite. En outre, on peut considérer que toute disposition de portes, de bascules et autres compo- sants exécutant la séquence des évènements du présent système est satisfaisante. Les sorties de sélection de pastille reliées à une ligne 82 sont utilisées par la matrice FPLA pour sélectionner des pastilles de mémoire individuelles de la matrice LRU 72. Les signaux de validation 1 et 2 transmis respectivement sur des lignes 83 et 84 sont des signaux de sélection d'une des deux pastilles de FPLA individuelles qui constituent la matrice FPLA 79 de la Figure 4. Ces signaux proviennent d'autres parties du circuit de commande d'antémémoire. Quand une correspondance a été détectée, les signaux de correspondance transmis par une ligne 85 sont introduits dans la matrice FPLA et sont convertis en une combinaison- convenable de bits de mise à jour de LRU transmise par la ligne 80 pour mettre à jour les bits de LRU pour le niveau de correspondance afin de le marquer comme le plus récemment- utilisé. La Figure 6 est un schéma logique de.la disposition interne des pastilles de matrice FPLA 79. Chaque pastille a seize entrées et huit sorties. Chaque sortie correspond à la fonction OU programmable d'un groupe comprenant jusqu'à quarante-huit fonctions OU programmables, les portes OU 86 et 87 représentant deux des huit portes OU à quarante-huit entrées intervenant dans la pastille. Chaque entrée de chaque porte OU est connectée par un fusible aux versions inversée et non-inversée de chacune de seize entrées. En détruisant sélectivement certains fusibles dans la matrice PPLA, on peut fabriquer un réseau de priorité rapide et bon marché. Les Figures 7 et 8 représentent la table de vérité des pastilles de FPLA 79 dans b circuit de commande d'antémémoire 49 de laquelle les équations booléennes, utilisées pour sélectionner les fusibles à détruire, peuvent être déduites. Les trois sections à gauche de la table de vérité sur la Figure 8, désignées par HIT, LRU, HCLR, représentent les fonctions qui consistent respectivement à traiter une correspondance de niveau, à déterminer le niveau le moins récemment utilisé et à effacer complètement l'antémémoire dans certaines conditions. Pour comprendre la signification de la table de vérité, il faut savoir que la mémoire d'anté- mémoire est divisée en deux moitiés, des niveaux un et deux constituant la première moitié et des niveaux trois et quatre constituant la seconde moitié. Cette disposition permet à l'unité CPU d'utiliser une moitié de l'antémémoire indépen- * damment de l'autre de sorte que des opérations peuvent se poursuivre, dans e caS d'un défaut dans une moitié de la mémoire d'antémémoire. Ainsi, la ligne de fonction zéro de la Figure 8, correspondant à la sortie de la fonctionruméro un pour une correspondance du niveau un, ne contient qu'un niveau logique haut pour le bit S1/2. Les entrées pour cette fonction montrent que les signaux de chargement de bloc et de validation 2 sont dans l'état d'absence de condition et que le signal de validation 1 est à un niveau logique haut. En outre, il y a eu une correspondance du niveau un, comme indiqué par le niveau logique bas à l'entrée HIT 1. Cette combinaison d'entrées indique que la première moitié de la mémoire d'antémémoire est en cours d'utilisation et qu'il y a eu une correspondance au niveau un. En conséquence, la fonction des pastilles de FPLA est de mettre à jour le niveau un comme plus récemment utilisé que le niveau deux. La combinaison de sorties pouvant faire cette opération est la suivante. Si l'on se réfère à la ligne zéro des Figures 7 et 8, on voit que les fonctions de sortie pour les deux pastilles FPLA sont à des niveaux logiques bas sur toutes les six sorties de sélection de pastille. Ces signaux valident toutes les pastilles de mémoire de la matrice LRU. Il y a aussi un niveau logique haut pour le bit Sl/2 de sortie de fonction numéro un de la Figure 8. Ce niveau logique haut indique que le niveau un a été utilisé plus récemment que le niveau deux et il est bloqué dans la matrice LRU 72 de la Figure 4 par le bus 80. La ligne 4 des Figures 7 et 8 représente le cas o les 2474721- -y deux moitiés de la mémoire d'antémémoire sont en fonctionnement. Le signal de chargement de bloc est à un niveau logique bas qui indique qu'une correspondance a été détectée, et les signaux de validation 1 et 2 sont tous les deux à un niveau logique haut qui indique que les deux moitiés de la mémoire d'antémémoire sont en fonctionnement. Le niveau logique bas à l'entrée HIT 1 indique une correspondance du niveau un. Les trois niveaux logiques hauts des bits S1/2,1/3 et 1/4 indiquent que le niveau un a été utilisé depuis la dernière utilisation des niveaux deux, trois et quatre. On notera qu'à propos de la description faite en référence à la Figure 5, on a utilisé un exemple de LRU codant un zéro pour indiquer que le niveau un était utilisé depuis la dernière utilisation de l'autre. Il est en fait tout à fait arbitraire qu'un "zéro" ou un "un" soit sélectionné pour cette condition. Des systèmes à plusieurs processeurs sont définis pour des capacités de traitement élevées. Dans ces systèmes, un processeur peut changer des données de mémoire principale, ces données étant concuremment mémorisées dans l'antémémoire d'un ou de plusieurs autres processeurs. Dans ce cas, une erreur de système peut se produire si le processeur contenant les données hors d'usage dans son antémémoire adresse ces données dans ses opérations. Pour empêcher ces erreurs de système tout en ne ralentissant pas les opérations d'accès à l'antémémoire, un dispositif d'effacement sélectif est aussi prévu dans la présente invention. Comme on l'a noté plus haut, les systèmes connus utilisent un dispositif d'effacement qui efface toute l'antémémoire dans certaines conditions o des données dans l'antémémoire peuvent avoir été mises hors d'usage par un autre processeur. En n'effaçant que les empla- cements contenant les données hors d'usage, ledit effacement excessif peut être éliminé. Il existe dans la technique un dispositif d'effacement sélectif mais il ne fonctionne pas en association avec un sous-système de détermination de niveaux les moins récemment utilisés (LRU). Le sous-système d'effacement sélectif repré- senté sur la Figure 2 est constitué par un répertoire en 2474721 ' double 95, un comparateur 96 et leurs piles d'entrée et de sortie associées. Le répertoire en double 95 est organisé de la même manière que le répertoire principal 54. Il contient des adresses drapeaux en double pour toutes les données conte- nues dans la mémoire d'antémémoire 40. Ces adresses drapeaux sont chargées dans le répertoire en double 95 en même temps qu'elles sont chargées dans le répertoire principal 54. Ce chargement est réalisé au moyen d'une ligne 97, d'un tampon 98 et d'une pile d'écriture 99. La ligne 97 relie les première et seconde parties du verrou d'adresse d'antémémoire 56 au tampon 98. C'est ainsi que les bits 0 à 21 de l'adresse absolue sont chargés dans le tampon 98 pour les données demandées. Le tampon 98 conserve cette adresse jusqu'a ce/euisse être écrite dansla pile d'écriture 99. La pile d'écriture a deux sorties pour diviser chaque adresse mémorisée en deux compo- santes. La première sortie envoie les bits 0 à 12 de l'adresse drapeau à l'entrée de données du répertoire en double 95 par l'intermédiaire d'une ligne 100. La seconde sortie envoie l'adresse de colonne en double, ou les bits 13 à 21 de l'adres- se absolue, à l'entrée d'adresse du répertoire en double 95 par l'intermédiaire d'une ligne 101. Le signal d'échantillon- nage de niveau en double sur une ligne 102 reliée au circuit de commande d'antémémoire 49 sert à diriger les bits d'adresse drapeau dans le niveau correct de la colonne du répertoire en double 95 sélectionnée par le signal d'adresse de colonne en double transmis par la ligne 101. Pour indiquer les emplacements de changements de données, il est nécessaire de connaître les adresses absolues de toutes les données en mémoire principale qui ont été changées par d'autres processeurs. Ces adresses de notification de change- ment arrivent par une ligne 103 à un tampon 104. Ces adresses sont mémorisées dans une pile de notifications de changement de sorte queleur traitement peut être fait de façon asynchrone avec le traitement d'ensemble et les autres parties de l'antémémoire. La pile de notifications de changement 105 a deux sorties, toujours dansle but de diviser l'adresse en deux composantes. La première sortie reliée à une ligne 106 2474721- envoie les bits 0 à 12 d'adresse drapeau de l'adresse changée à une première entrée de données du comparateur 96. La seconde sortie reliée à la ligne 101 envoie les bits 13 à 21 d'adresse de colonne à l'entrée d'adresse du répertoire en double 95. Ainsi, quand chaque adresse de notification de changement est traitée hors de la pile 105, les bits 13 à 21 de celle-ci sélectionnent une colonne particulière du répertoire en double pour l'examiner. Les adresses drapeaux dans les quatre niveaux de cette colonne sont envoyées aux secondes entrées de données du comparateur 96 par l'intermédiaire de lignes 107. Le comparateur compare ces adresses drapeaux à l'adresse drapeau de l'adresse de notification de changement et, si une correspondance est détectée, l'adresse drapeau de corres- pondance est envoyée à une pile de colonnes changées 108 comme le signal de correspondance en double sur une ligne 109. La pile de colonnes changées 108 mémorise cette adresse drapeau et les bits 13 à 21 de l'adresse de notification de changement sur la ligne 101. Les deux composantes sont ensuite mémorisées comme une adresse. Le circuit de commande d'anté- mémoire 49 lit les adresses changées par une ligne 110, et à partir de ces informations il engendre le signal d'effacement sur la ligne 68. Le signal d'effacement est utilisé pour effacer le bit dans la matrice de pleins/vides 66 qui corres- pond au niveau dans le répertoire principal 54 qui renvoie aux données hors d'usage dans la mémoire d'antémémoire 40. Bien entendu, l'invention n'est pas.-limitée aux modes de réalisation décrits ci-dessus, qui peuvent faire l'objet de nom- breuses variantes. 2474721 I REVENDICATIONS 1. Dispositif de mémoire d'antémémoire pour une unité centrale de traitement CPU d'un système de traitement de données comportant une mémoire principale(20),caractérisé en ce qu'il comprend: a) un premier moyen (40) pour mémoriser et donner accès à un ensemble de mots de données utilisés par l'unité CPU, les mots de données étant mémorisés dans un ensemble de sections divisées chacune en un ensemble de blocs: b) un second moyen '54, 55) comportant un ensemble de niveaux qui correspondent chacun à une section du premier moyen, et sont chacun divisés en un ensemble de colonnes dont chacune correspond à un groupe de blocs du premier moyen, le second moyen étant conçu pour mémoriser des adresses drapeaux iden- tifiant les mots de données de mémoire principale qui sont contenus dans le premier moyen, pour les comparer aux adresses drapeaux des mots de données demandés par l'unité CPU et pour engendrer une information de correspondance quand le mot de données demandé est présent dans le premier moyen afin d'indi- quer le niveau dans lequel les données ont été trouvées; c) un troisième moyen (49, 72, 79, 95) pour permettre de transmettre le mot de données demandé du premier moyen à l'unité CPU quand une correspondance est détectée, pour déter- miner le niveau le moins récemment utilisé du second moyen quand il n'y a pas de correspondance détectée, pour permettre d'extraire le mot de données demandé de la mémoire principale, de l'envoyer à l'unité CPU, et de l'écrire dans le premier moyen, pour commander qu'une adresse drapeau indexant le mot de données extrait soit écrite dans le niveau le moins récem- ment utilisé du second moyen, pour effectuer une mise à jour des données se trouvant dans le nouveau niveau le plus récemment utilisé quand une correspondance est détectée et pour assurer leur mémorisation. 2. Dispositif de mémoire d'antémémoire selon la revendica- tion 1, caractérisé en ce que ledit troisième moyen (49, 72, 79, 95) comprend une matrice de mémoire à accès sélectif au niveau le moins récemment utilisé LRU (72), divisée en un 26 2474721.1 ensemble de rangées dont chacune représente une colonne du second moyen (54) et se compose d'un ensemble d'emplacements de bits de LRU suffisants pour y coder l'ordre d'utilisation dans le temps des niveaux de la colonne correspondante, en ce que chaque rangée de la matrice LRU peut être individuellement adressée pour lire les bits de LRU ou écrire des bits de LRU mis à jour, en ce que chaque bit de LRU d'une rangée représen- te deux niveaux du second moyen, un état binaire d'un bit de LRU signifiant qu'un des niveaux a été utilisé avant l'autre tandis que l'état binaire opposé indique la situation inverse, et en ce qu'il existe un nombre suffisant de bits de LRU pour, représenter l'ensemble des combinaisons possibles d'utilisa- tion des niveaux du second moyen. 3. Dispositif de mémoire d'antémémoire selon la reven- dication 2, caractérisé en ce que ledit troisième moyen (49, 72, 79, 95) comprend en outre un moyen (49) pour recevoir la- dite information de correspondance et pour lire ladite matri- ce LRU quand une absence de correspondance a été détectée a- fin de déterminer le niveau le moins récemment utilisé de la colonne du second moyen (54) adressée par l'adresse des don- nées demandées, pour permettre l'extraction des données deman- dées de la mémoire principalepour 'les présenter à l'unité CPU pour leur utilisation tout en permettant de les écrire simul- tanément dans le premier moyen (40),dans le bloc et la section correspondant au niveau le moins récemment utilisé de la co- lonne adressée du second moyen, pour indexer l'écriture du mot de données extrait dans le premier moyen en écrivant, dans le niveau le moins récemment utilisé précédemment déterminé du second moyen, une adresse drapeau constituée par une partie de l'adresse absolue des données extraites, et pour mettre à jour les bits de LRU correspondant à la colonne du second moyen dans laquelle l'adresse drapeau vient d'être écrite. 4. Dispositif de mémoire d'antémémoire selon la reven- dication 3, caractérisé en ce que ledit troisième moyen com- prend en outre une matrice logique de champ programmable FPLA 9) ayant un ensemble de sorties dont chacune engendre la combi- 2474721 t naison logique OU d'un ensemble programmable de termes logiques ET représentant chacun une combinaison programmable d'un ensemble d'entrées, ces entrées étant reliées aux sorties de données de la matrice LRU pour recevoir l'état des bits de LRU et au second moyen pour recevoir l'information de corres- pondance, et les sorties étant reliées aux entrées de données de la matrice de mémoire à accès sélectif LRU et aux entrées de validation d'écriture des second et premier moyens, la matrice logique de champ programmable étant programmée avec une combinaison appropriée de termes ET-OU pour lui permettre de déterminer quel est le niveau du second moyen le moins récemment utilisé en l'absence de correspondance pour un mot de données demandé et d'engendrer un signal d'échantillonnage de niveau afin de diriger le mot de données extrait de la mémoire principale dans la section appropriée du premier moyen, et pour diriger l'adresse drapeau indexant le mot de données extrait dans le niveau approprié du second moyen et, dans le cas d'une correspondance d'un niveau particulier ou d'une absence de correspondance, pour engendrer la combinaison de bits appropriée qui indique que le niveau mémorisé ou de correspondance est maintenant le niveau le plus récemment utilisé et pour mémoriser cette combinaison de bits. - 5. Dispositif de mémoire d'antémémoire selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comprend en outre une matrice de mémoire à accès sélectif de pleins/vides (66) constituée par un ensemble de rangées dont chacune correspond à une colonne du second moyen, chaque rangée étant constituée par un ensemble d'emplacements de bits de plein/vide F/E qui correspondent chacun à un niveau particulier du second moyen, chaque bit F/E signifiant dans un état binaire que son niveau associé est plein et, dans l'autre état binaire, que le niveau est vide, ladite matrice de pleins/vides étant conçue pour effacer, en réponse à des signaux d'effacement engendrés par ledit troisième-moyen comprenant un moyen (49, 95) pour engendrer las signaux d'effacement, le bit F/E d'état vide correspondant audit dans niveau particulier quand les données contenues/te premier moyen correspondant audit niveau ne sont plus les mêmes que 2474721'7 -28 les données correspondantes contenues dans la mémoire princi- pale. 6. Dispositif de mémoire d'antémémoire selon la revendi- cation 5, caractérisé en ce que ledit moyen de génération de signaux d'effacement comprend un répertoire en double (95) organisé de la même manière que ledit second moyen, -contenant un groupe en double des adresses drapeaux contenues dans le second moyen, et comportant une entrée pour recevoir des adresses de notification d'écriture d'autres unités CPU du système de traitement de données, lesdites adresses de notifi- cation d'écriture indiquant que les données placées à ces adresses dans la mémoire principale ont été changées, le réper- toire en double étant conçu pour comparer les adresses drapeaux des données contenues dans ledit premier moyen aux adresses de notification d'écriture et pour engendrer les signaux d'effacement pour le bit F/E approprié correspondant à chaque correspondance, et en ce que lesdites entrées de la matrice logique de champ programmable sont également reliées aux sor- ties de données de la matrice de pleins/vides, la matrice logique de champ programmable étant programmée avec une combinaison convenable de termes ET-OU pour lui permettre de déterminer s'il y a des niveaux Vides dans la colonne adressée du second moyen quand une absence de- correspondance est détectée et de diriger le mot de données extrait dans le niveau vide déterminé ou autrement dans le niveau le moins récemment utilisé. 7. Dispositif de mémoire d'antémémoire dans une unité centrale de traitement CPU d'un système de traitement de données comportant une mémoire principale(20),.caractérisé en ce qu'il comprend a) un premier moyen (40) pour mémoriser des informations dans des sections d'unités de mémoire; b) un second moyen (54, 55) comportant des niveaux corres- pondant auxdites sections du premier moyen pour indexer les informations mémorisées dans le premier moyen, pour comparer les informations demandées par l'unité CPU aux informations indexées et pour engendrer un signal de correspondance quand 2474721' les informations sont dans le premier moyen c) un troisième moyen (72, 49) pour déterminer le niveau le moins récemment utilisé du second moyen quand une correspon- dance n'est pas détectée, et pour permettre d'extraire les informations demandées de la mémoire principale, de les envoyer à l'unité CPU, de les écrire dans le premier moyen et de les indexer dans le niveau le moins récemment utilisé du second moyen; d) un quatrième moyen (95, 49) comportant les mêmes infor- mations indexées que le second moyen pour déterminer quand une information contenue dans la mémoire principale et dans le premier moyen a été changée dans la mémoire principaleet pour engendrer un signal d'effacement pour marquer l'emplace- ment de l'information changée dans le premier moyen comme vide; t e) un cinquième moyen (66) pour indiquer les états plein et vide de chaque niveau du second moyen et pour recevoir le signal d'effacement et marquer comme vide le niveau du second moyen correspondant à l'information changée. d'antém- air 8. Dispositif de mémoire/pour otTenrir un accès plus rapide à des informations utilisées par une première centrale de traitement CPU que celui obtenu par la mémoire principale (20) du système de traitement de données à plusieurs unités centrales de traitement dont la première unité CPU fait partie, caractérisé en ce qu'il comprend: al une mémoire d'antémémoire (40) organisée en un ensemble de sections dont chacune est constituée par un ensemble de blocs adressables individuellement, chaque bloc comportant un ensemble d'unités de mémoire adressables individuellement pour mémoriser des mots de données demandés par la première unité CPU pour ses opérations; b) un répertoire principal (54) organisé en un ensemble de colonnes adressables individuellement, chaque colonne correspondant à une rangée de blocs de la mémoire d'antémé- moire, et chaque colonne étant divisée en un ensemble de niveaux d'emplacements en mémoire d'adresses drapeaux dont chaque niveau correspond à un bloc particulier d'une rangée de blocs 2474721 1 de la mémoire d'antémémoire, chacun des niveaux étant prévu pour mémoriser une adresse drapeau indiquant quels mots de données se trouvent dans le bloc correspondant de la mémoire d'antémémoire et comprenant un comparateur (55) pour comparer les adresses drapeaux des mots de données contenus dans la mémoire d'antémémoire à l'adresse drapeau des données demandées par la première unité CPU et pour engendrer des signaux de correspondance indiquant dans quelle section de la mémoire d'antémémoire les données peuvent être lues dans le cas de correspondance; c) un ensemble d'emplacements de bits d'état plein/vide adressables individuellement (66) et qui correspondent chacun à un niveau particulier d'une colonne particulière du réper- toire principal, chaque bit indicateur étant prévu pour indi- quer si son niveau correspondant est plein ou vide; d) un moyen d'effacement sélectif (105, 95, 108, 49) comportant en premier lieu une entrée d'adresse pour recevoir une adresse de notification de changement indiquant les adresses de la mémoire principale ayant été changées par une autre unité CPU du système, et en second lieu une sortie pour engendrer un signal d'adresse changée indiquant les données de la mémoire d'antémémoire avant été changées dans la mémoire principale, le signal d'adresse changée étant prévu pour indiquer lequel des bits d'état plein/vide doit être ramené à l'état vide; e) un moyen indicateur du moins récemment utilisé LRU (72, 79) comprenant une matrice de mémoire LRU (72) constituée par un ensemble d'emplacements de bits de LRU adressables individuellement/eJont chaque bit est associé à un niveau d'une colonne du répertoire principal, le nombre de bits de LRU étant suffisant pour coder l'ordre d'utilisation des niveaux dans la colonne associée du répertoire principal de façon que le niveau ayant été utilisé le moins récemment puisse être décodé à partir des bits de LRU, une sortie étant prévue pour fournir les données du niveau le moins récemment utilisé et une entrée étant prévue pour mettre à jour les bits de LRU quand l'ordre d'utilisation a changé, ledit moyen indicateur du niveau le moins récemment utilisé comprenant une matrice logique de champ programmable FPLA (79) constituée par un ensemble programmable de termes ET-OU programmables dont des entrées sont reliées à la matrice de mémoire LRU pour recevoir les bits d'état plein/vide et au comparateur pour recevoir les signaux de correspondance, et dont des sorties sont reliées à la matrice de mémoire LRU et au répertoire principal et/la mémoire d'antémémoire, la matrice logique de champ programmable étant programmée pour mettre à jour les en antémémoi.re. bits de LRU dans le cas d'une correspondance/et pour ariger l'adresse drapeau des données extraites dans un niveau vide ou dans le niveau le moins récemment utilisé du répertoire principal et les données extraites dans la section correspon- dante dela mémoire d'antémémoire dans le cas d'une absence de correspondance; f) un moyen (49) pour mémoriser l'adresse de l'information demandée par la première unité CPU, et pour comparer cette adresse à l'adresse drapeau contenue dans le répertoire principal (54) pour déterminer si l'information demandée est dans la mémoire d'antémémoire, pour transférer l'information à la première unité CPU si elle est présente dans la mémoire d'antémémoire et, si l'information n'est pas dans la mémoire d'antémémoire., pour permettre à la matrice logique de champ programmable 79 de déterminer le niveau le moins récemment utilisé de la colonne adressée dans le répertoire principal et pour permettre d'écrire l'adresse drapeau de l'information demandée dans le niveau du répertoire principal comme il est déterminé par la matrice logique de champ programmable, pour permettre d'écrire l'information extraite de la mémoire principale dans l'emplacement de la mémoire d'antémémoire correspondant au niveau du répertoire principal venant d'être changé afin de recevoir le signal d'adresse changée et d'engendrer à partir de celui-ci un signal d'effacement pour effacer l'indicateur d'état plein/vide correct. 9. Dispositif de mémoire d'antémémoire pour chaque unité centrale de traitement CPU d'un système de traitement de données à plusieurs processeurs comportant une mémoire prin- 2474721 x cipale (20),caractérisé en ce qu'il comprend a) un verrou d'adresse d'antémémoire (56) pour recevoir et conserver l'adresse absolue des données demandées par l'unité CPU, le verrou d'adresse d'antémémoire étant constitué par une première, une seconde et une troisième partie, lesdites parties servant à envoyer des parties de l'adresse à d'autres parties de la mémoire d'antémémoire; b) une mémoire d'antémémoire (40) pour mémoriser et donner accès à un ensemble d'informations utilisées par ladite unité CPU, lesdites informations étant mémorisées dans une mémoire à accès sélectif rapide divisée en un ensemble de sections adressables individuellement, chaque section compor- tant une entrée et une sortie de données et étant divisée en un ensemble de blocs dont chacun est divisé en un ensemble d'emplacements de mots adressables individuellement, ladite mémoire d'antémémoire comportant une entrée d'adresse, reliée auxdites seconde ettroisième parties du verrou d'adresse d'antémémoire. pour recevoir un signal d'adresse de lecture/ écriture de mémoire d'antémémoire afin d'indiquer dans quel bloc et dans quel emplacement de mot dudit bloc les données arrivant à ladite entrée doivent être écrites et de quel emplacement de mot dudit bloc les données doivent être envoyées à ladite sortie de données, et comportant une entrée d'échan- tillonnage de section; - c) un premier commutateur (41) ayant une sortie de données reliée à l'entrée de données de la mémoire d'anté- mémoire et un ensemble d'entrées de données reliées à l'unité CPU et à la mémoire principale, et comportant une entrée de commande, ledit premier commutateur étant conçu pour transférer des données provenant de l'unité CPU dans la mémoire d'antémémoire pendant des opérations d'écriture d'unité CPU et pour transférer des données extraites de la mémoire principale dans la mémoire d'antémémoire après qu'une absence de correspondance a été détectée; d) un second commutateur (42) comportant un ensemble d'entrées de données reliées aux sorties de données desdites sections de la mémoire d'antémémoire, une sortie de-données et une entrée de commande, le second commutateur étant conçu pour sélectionner sous la commande d'un signal de sélection de bloc présenté à l'entrée de commande une des sorties de données des sections de la mémoire d'antémémoire pour transférer les données de cette sortie à la sortie de données du second commutateur; e) un répertoire principal (54) comportant un ensemble de niveaux dont chacun est associé et correspond à une des sections de la mémoire d'antémémoire, chaque niveau étant relié à une entrée de données elle-même reliée à la première partie du verrou d'adresse d'antémémoire et chaque niveau étant divisé en un ensemble de cellules de mémoire d'adresses drapeaux adressables individuellement, une rangée de ces cellules dans chaque niveau comprenant une colonne, chaque cellule correspondant à un des blocs de la mémoire d'antémé- moire et étant conçue pour mémoriser un ensemble de bits comprenant des mots drapeaux provenant de l'adresse absolue des données contenues dans le bloc correspondant de la mémoire d'antémémoire, chaque niveau comportant une sortie pour présenter les bits d'adresse drapeau contenus dans une des cellules de drapeau, le répertoire principal comportant en outre une entrée d'adresse de lecture/écriture de répertoire reliée à la seconde partie du verrou d'adresse d'antémémoire pour recevoir un ensemble de bits d'adresse de bloc consti- tuant une partie de l'adresse absolue pour indiquer la colonne des cellules de drapeau à présenter aux sorties de niveau, et le répertoire principal comportant une entrée d'échantillonnage de niveau pour recevoir un signal indiquant la cellule de drapeau dans une colonne adressée par le signal d'adresse de bloc dans laquelle doivent être écrits des mots de drapeau d'entrée, le répertoire principal étant conçu pour mémoriser dans les cellules de drapeau les mots de drapeau indiquant quelles données sont contenues dans la mémoire d'antémémoire et o elles sont mémorisées, et pour extraire une colonne sélectionnée des mots de drapeau et les présenter aux sorties de niveau pour une comparaison; f) un comparateur (55) pour comparer l'adresse drapeau 2474721'i des données demandées par l'unité CPU aux adresses drapeaux contenues dans le répertoire principal et pour engendrer un signal de correspondance si une correspondance est détectée, et pour assurer la mise à jour des données se trouvant dans le niveau le moins récemment utilisé, le comparateur comportant un ensemble d'entrées reliées aux sorties de niveau pour recevoir les mots de drapeau et comportant une entrée de mot de drapeau de données demandées reliée à la première partie du verrou d'adresse d'antémémoire pour recevoir un mot de drapeau de données demandées à comparer aux mots de drapeau provenant du répertoire principal et comportant des sorties pour engendrer les signaux de correspondance; g) un verrou de LRU (73) comportant une entrée d'adresse de LRU reliée à la seconde partie du verrou d'adresse d'anté- mémoire (56) pour recevoir et conserver la partie de l'adresse absolue comprenant le bit d'adresse de bloc et la présenter à une sortie; h) une matrice de niveau le moins récemment utilisé LRU (72) pour mémoriser des données codées pour indiquer le niveau le moins récemment utilisé du répertoire principal, la matrice étant constituée d'un ensemble de rangées d'un ensemble d'emplacements de bits, chaque rangée étant associée et correspondant à une des colonnes du répertoire principal et chaque rangée étant constituée par un nombre suffisant d'emplacements de bits pour valider le codage de données suffisantes pour déterminer l'ordre temporel d'une dernière utilisation de chaque niveau dans la colonne associée, chaque bit représentant l'état existant entre deux des niveaux et le nombre de bits prévus étant égal au nombre de combinai- sons du nombre de niveaux existant dans le répertoire principal et pris à raison de deux à la fois, ladite matrice de LRU comportant une entrée d'adresse, reliée à la sortie du verrou de LRU pour recevoir les bits d'adresse indiquant quelle colonne du répertoire principal est examinée par ledit compa- rateur de façon que les bits de la rangée correspondante puissent être présentés à une sortie de niveau LRU, et compor- tant une entrée de mise à jour de LRU, servant à recevoir 2474721 i des données de mise à jour de LRU pour mettre à jour les bits de la rangée sélectionnée quand une correspondance est détec- tée avec un niveau particulier ou quand une absence de cor- respondance est détectée et quand un niveau vide ou le niveau le moins récemment utilisé est utilisé pour mémoriser le mot de drapeau pour les données extraites de la mémoire principale après la détection d'absence de correspondance,la mise à jour de la rangée de bits servant à indiquer que le niveau de correspondance ou nouvellement chargé est maintenant le plus récemment utilisé; i)un moyen de commande (49)comprenant une matrice lo- gique de champ programmable (79) pour commander les éléments du dispositif de mémoire d'antémémoire et comportant d'une part une entrée reliée à la sortie de signal de correspondance pour recevoir le signal de correspondance indiquant lequel des niveaux de la colonne adressée correspond à l'adresse des don- nées demandées,et d'autre part une sortie de sélection de bloc reliée à l'entrée de commande du second commutateur pour per- mettre à celui-ci de transférer les données d'une sortie sélec- tionnée des niveaux à la sortie du second commutateur quand le signal de correspondance est présent,ledit moyen de commande (49)comportant en premier lieu une sortie d'échantillonnage de niveau reliée à l'entrée d'échantillonnage de niveau du réper- toire principal et à l'entrée d'échantillonnage de section de la mémoire d'antémémoire pour permettre l'échantillonnage des bits d'adresse drapeau de l'adresse absolue dans le verrou d'adresse d'antémémoire qui se trouvent dans la cellule de drapeau du niveau le moins récemment utilisé du répertoire principal quand une absence de correspondance est détectée et pour permettre d'écrire les données,écrites dans la mémoire d'antémémoire pendant une opération d'écriture de CPU ou lors de l'extraction de ces données de la mémoire principale,dans une section sélectionnéekorrespondant au niveau du répertoire principal dans lequel les bits d'adresse drapeau correspondant aux données sont mémorisés,en second lieu une sortie reliée au pre- mier commutateur (41) pour commander le transfert des données provenant de l'unité CPU ou de la mémoire principale dans la mémoire d' antémémoire,en troisième lieu une entrée de registre d'adresse d'échantil- 2474721 ' lonnage pour recevoir un signal de l'unité CPU indiquant que cette unité demande des données et a préparé l'adresse -absolue des données, en quatrième lieu une sortie d'absence de correspondance pour signaler à d'autres éléments du système de traitement de données que les données demandées n'ont pas été trouvées dans la mémoire d'antémémoire et pour extraire les données de la mémoire principale, et en cinquième lieu une entrée au niveau le moins récemment utilisé LRII pour recevoir des données de la matrice LRU afin de les décoder en une information indiquant le niveau qui a été le moins récemment utilisé de sorte que le signal d'échantillonnage de niveau puisse être préparé en utilisant cette information. 10. Dispositif de mémoire d'antémémoire selon la revendi- cation 9, caractérisé en ce qu'il comprend en outre: a) une matrice de pleins/vides (66) constituée par un ensemble de rangées adressables individuellement d'emplacements de bits F/E de plein/vide dont chaque rangée est associée à et correspond à une des colonnes du répertoire principal, chaque cellule de mémoire de données correspondant à un des niveaux de la colonne correspondante, l'état binaire de chaque bit F/E indiquant l'état plein ou vide de chaque niveau correspondant et la matrice de pleins/vides comportant d'une part une entrée d'adresse pour recevoir un signal d'adresse de F/E donnant accès aux rangées et d'autre part une entrée de données pour recevoir un signal de mise à un ou de remise à zéro de-chaque bit P/E dans la rangée adressée; b) un troisième commutateur (67) comportant en premier lieu une entrée reliée à la seconde partie du verrou d'adresse d'antémémoire (56) pour recevoir ledit signal d'adresse de F/E, en second lieu une sortie reliée à l'entrée d'adresse pour laisser passer le signal d'adresse de F/E à la réception d'un signal de commande prédéterminé à une entrée de commande, et en troisième lieu une entrée d'effacement reliée au moyen de commande pour recevoir un signal pour effacer des bits sélectionnés des bits F/E dans la rangée adressée par l'adresse de F/E c) une pile de notifications de- changement (105) pour recevoir les adresses absolues de notification de changement d'emplacements dans la mémoire principale qui ont été changés par d'autres processeurs dans le système de traitement de données depuis leur écriture dans la mémoire d'antémémoire, et comportant une première sortie, reliée pour transmettre une partie de mot drapeau de chaque adresse de notification de changement, et une seconde sortie, reliée pour transmettre une partie d'adresse de bloc de l'adresse de notification de changement, d) une pile d'écriture (99) pour mémoriser des parties des adresses absolues de données contenues dans la mémoire d'antémémoire et comportant une entrée, reliée aux première et seconde parties du verrou d'adresse d'antémémoire pour recevoir lesdites parties et les mémoriser, et en outre une première sortie pour présenter la première partie de l'adresse absolue et une seconde sortie pour présenter la seconde partie e) un répertoire en double (95) organisé de la même manière que le répertoire principal, conçupour mémoriser un groupe en double de mots drapeaux correspondant aux données contenues dans la mémoire d'antémémoire, et comportant en premier lieu une entrée de mot drapeau reliée à la première sortie de la pile d'écriture pour recevoir et mémoriser des mots drapeaux en même temps que le répertoire principal, en second lieu une entrée d'adresse de colonne en double reliée à la seconde sortie de la pile d'écriture et de la pile de notifications de changement pour recevoir la seconde partie de l'adresse absolue dans le verrou d'adresse d'antémémoire afin d'avoir accès à la colonne correcte quand des données sont écrites dans la mémoire d'antémémoire et pour recevoir la seconde partie de l'adresse de notification de changement afin d'avoir accès à la colonne correcte pour y lire un mot drapeau sélectionné quand les mots drapeaux des données contenues dans la mémoire d'antémémoire sont comparés aux mots drapeaux des données dans la mémoire principale qui ont été changées, en troisième lieu une entrée d'échantillonnage de niveau en double reliée au moyen de commande pour recevoir un signal indiquant quel niveau de la colonne adressée doit être écrit ou lu, et en quatrième lieu, une sortie pour chaque niveau pour présenter le mot drapeau contenu dans ce niveau de la colonne adressée; f) un second comparateur (96) comportant un ensemble d'entrées reliées chacune à chaque sortie dedit niveau du répertoire en double et comportant une entrée de changement de drapeau reliée à la première sortie de la pile de notifications de changement pour comparer le mot drapeau de l'adresse de- notification de changement aux mots drapeaux dans la colonne adressée du répertoire en double, et pour engendrer un signal de correspondance en double à une sortie quand une correspon- dance est détectée qui indique le niveau de correspondance; g) une pile de colonnes changées (108), comportant en premier lieu une entrée reliée à la seconde sortie de la pile de notifications de changement pour recevoir la seconde partie de l'adresse de notification de changement, en second lieu une entrée reliée au second comparateur pour recevoir le signal de correspondance en double afin de mémoriser la seconde partie de l'adresse de notification de changement avec le signal de correspondance en double, et en troisième lieu une sortie pour présenter lesdits signaux mémorisés; h) un moyen inclus dans ledit moyen de commande (49) relié à la sortie de la pile de colonnes changées et relié à l'entrée d'effacement du troisième commutateur (67).pour engendrer un signal d'effacement qui indique laquelle des cellules de mémoire de données et de quelle colonne de la matrice de pleins/vides doit être effacée pour être à l'état vide; i) un moyen inclus dans le troisième commutateur (67) pour permettre de transférer la partie du signal d'effacement indiquant la rangée demandée à l'entrée d'adresse de la matri- ce de pleins/vides et pour permettre de transférer la partie du signal d'effacement indiquant quelle cellule de mémoire de données doit être effacée à l'entrée de données; j) une matrice logique de champ programmable (79) du moyen de commande (49) reliée à une sortie de données de la matrice de pleins/vides et comportant une sortie reliée à la ligne de signal d'échantillonnage de niveau et programmée pour permettre de mémoriser d'abord les données extraites pour une absence de correspondance et les mots drapeaux pour ces données dans des niveaux vides et des sections respecti- vement du répertoire principal et de la mémoire d'antémémoire, et, s'il n'y a pas de niveaux vides, de les mémoriser ensuite dans le niveau le moins récemment utilisé.