FR2474721A1 - Dispositif de memoire d'antememoire - Google Patents

Dispositif de memoire d'antememoire Download PDF

Info

Publication number
FR2474721A1
FR2474721A1 FR8101276A FR8101276A FR2474721A1 FR 2474721 A1 FR2474721 A1 FR 2474721A1 FR 8101276 A FR8101276 A FR 8101276A FR 8101276 A FR8101276 A FR 8101276A FR 2474721 A1 FR2474721 A1 FR 2474721A1
Authority
FR
France
Prior art keywords
data
level
address
memory
flag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8101276A
Other languages
English (en)
Other versions
FR2474721B1 (fr
Inventor
Ronald E Lange
Richard J Fisher
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
Honeywell Information Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA, Honeywell Information Systems Inc filed Critical Honeywell Information Systems Italia SpA
Publication of FR2474721A1 publication Critical patent/FR2474721A1/fr
Application granted granted Critical
Publication of FR2474721B1 publication Critical patent/FR2474721B1/fr
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

DISPOSITIF DE MEMOIRE D'ANTEMEMOIRE PERFECTIONNE COMPORTANT DES MOYENS D'EFFACEMENT SELECTIF ET DE MISE A JOUR DE NIVEAU LE MOINS RECEMMENT UTILISE. LE DISPOSITIF COMPREND UNE MEMOIRE D'ANTEMEMOIRE 40 POUR MEMORISER DANS UN ENSEMBLE DE SECTIONS DES DONNEES UTILISEES PAR UNE UNITE CENTRALE DE TRAITEMENT CPU; UN REPERTOIRE PRINCIPAL 54 COMPRENANT UN ENSEMBLE DE NIVEAUX POUR MEMORISER DES ADRESSES DRAPEAUX DE DONNEES DE MEMOIRE PRINCIPALE QUI SONT CONTENUES DANS L'ANTEMEMOIRE; UN COMPARATEUR 55 POUR COMPARER CES ADRESSES A DES ADRESSES DRAPEAUX DE DONNEES DEMANDEES PAR L'UNITE ET POUR ENGENDRER UN SIGNAL DE CORRESPONDANCE INDIQUANT LA PRESENCE DES DONNEES DEMANDEES DANS L'ANTEMEMOIRE ET LE NIVEAU DE CORRESPONDANCE POUR TRANSFERER LES DONNEES DE L'ANTEMEMOIRE A L'UNITE CPU. EN L'ABSENCE DU SIGNAL DE CORRESPONDANCE, LE NIVEAU LE MOINS RECEMMENT UTILISE EST DETERMINE POUR Y ECRIRE L'ADRESSE DRAPEAU DES DONNEES DEMANDEES PAR L'UNITE CPU. APPLICATION AUX SYSTEMES DE TRAITEMENT DE DONNEES.

Description

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

Claims (10)

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é.
FR8101276A 1980-01-24 1981-01-23 Dispositif de memoire d'antememoire Expired FR2474721B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/114,854 US4322795A (en) 1980-01-24 1980-01-24 Cache memory utilizing selective clearing and least recently used updating

Publications (2)

Publication Number Publication Date
FR2474721A1 true FR2474721A1 (fr) 1981-07-31
FR2474721B1 FR2474721B1 (fr) 1987-09-11

Family

ID=22357797

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8101276A Expired FR2474721B1 (fr) 1980-01-24 1981-01-23 Dispositif de memoire d'antememoire

Country Status (7)

Country Link
US (1) US4322795A (fr)
JP (1) JPS56114187A (fr)
AU (1) AU540144B2 (fr)
CA (1) CA1161172A (fr)
DE (1) DE3102150C2 (fr)
FR (1) FR2474721B1 (fr)
GB (1) GB2068155B (fr)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55134459A (en) * 1979-04-06 1980-10-20 Hitachi Ltd Data processing system
US4390943A (en) * 1979-12-26 1983-06-28 Honeywell Information Systems Inc. Interface apparatus for data transfer through an input/output multiplexer from plural CPU subsystems to peripheral subsystems
US4386402A (en) * 1980-09-25 1983-05-31 Bell Telephone Laboratories, Incorporated Computer with dual vat buffers for accessing a common memory shared by a cache and a processor interrupt stack
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4433374A (en) * 1980-11-14 1984-02-21 Sperry Corporation Cache/disk subsystem with cache bypass
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4414644A (en) * 1981-04-03 1983-11-08 International Business Machines Corporation Method and apparatus for discarding data from a buffer after reading such data
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
US4525777A (en) * 1981-08-03 1985-06-25 Honeywell Information Systems Inc. Split-cycle cache system with SCU controlled cache clearing during cache store access period
US4481570A (en) * 1981-08-07 1984-11-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Automatic multi-banking of memory for microprocessors
US4467416A (en) * 1981-09-16 1984-08-21 Honeywell Information Systems Inc. Logic transfer and decoding system
US4460959A (en) * 1981-09-16 1984-07-17 Honeywell Information Systems Inc. Logic control system including cache memory for CPU-memory transfers
US4458310A (en) * 1981-10-02 1984-07-03 At&T Bell Laboratories Cache memory using a lowest priority replacement circuit
US4463420A (en) * 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
EP0092895B1 (fr) * 1982-04-28 1988-05-11 International Computers Limited Système de traitement de données
US4494190A (en) * 1982-05-12 1985-01-15 Honeywell Information Systems Inc. FIFO buffer to cache memory
US4511994A (en) * 1982-09-27 1985-04-16 Control Data Corporation Multi-group LRU resolver
US4897783A (en) * 1983-03-14 1990-01-30 Nay Daniel L Computer memory system
US4603380A (en) * 1983-07-01 1986-07-29 International Business Machines Corporation DASD cache block staging
DE3502147A1 (de) * 1984-01-23 1985-08-08 Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung
DE3582506D1 (de) * 1984-02-10 1991-05-23 Prime Computer Inc Cache-kohaerenz-anordnung.
US4807110A (en) * 1984-04-06 1989-02-21 International Business Machines Corporation Prefetching system for a cache having a second directory for sequentially accessed blocks
EP0173556A3 (fr) * 1984-08-31 1987-05-27 Texas Instruments Incorporated Architecture hiérarchique pour déterminer l'antémémoire la moins récemment utilisée
US4648033A (en) * 1984-09-07 1987-03-03 International Business Machines Corporation Look-aside buffer LRU marker controller
US4847804A (en) * 1985-02-05 1989-07-11 Digital Equipment Corporation Apparatus and method for data copy consistency in a multi-cache data processing unit
JP2539357B2 (ja) * 1985-03-15 1996-10-02 株式会社日立製作所 デ−タ処理装置
US4835686A (en) * 1985-05-29 1989-05-30 Kabushiki Kaisha Toshiba Cache system adopting an LRU system, and magnetic disk controller incorporating it
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
FR2590699B1 (fr) * 1985-11-25 1994-07-01 Nec Corp Systeme assurant la coherence pour les contenus d'une antememoire
US5349672A (en) * 1986-03-17 1994-09-20 Hitachi, Ltd. Data processor having logical address memories and purge capabilities
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
US5146604A (en) * 1986-06-06 1992-09-08 Canon Kabushiki Kaisha Information filing apparatus that stores and erases information based on frequency of its use
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
JPS63257854A (ja) * 1987-04-15 1988-10-25 Nec Corp Lruメモリ障害検出回路
US4833601A (en) * 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5226039A (en) * 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
NL8800858A (nl) * 1988-04-05 1989-11-01 Philips Nv Rekenmachinesysteem voorzien van een hoofdbus en een tussen processor en geheugen direkt verbonden extra kommunikatielijn.
US5140690A (en) * 1988-06-14 1992-08-18 Mitsubishi Denki Kabushiki Kaisha Least-recently-used circuit
EP0366323A3 (fr) * 1988-10-28 1991-09-18 Apollo Computer Inc. File d'attente d'invalidation de duplicat de mémoire d'étiquettes
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
JPH02148235A (ja) * 1988-11-30 1990-06-07 Toshiba Corp データ退避方式
US5224217A (en) * 1988-12-30 1993-06-29 Saied Zangenehpour Computer system which uses a least-recently-used algorithm for manipulating data tags when performing cache replacement
US5060136A (en) * 1989-01-06 1991-10-22 International Business Machines Corp. Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first
US5161219A (en) * 1989-01-13 1992-11-03 International Business Machines Corporation Computer system with input/output cache
JPH0348951A (ja) * 1989-07-18 1991-03-01 Fujitsu Ltd アドレスモニタ装置
US5043885A (en) * 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
EP0419961A3 (en) * 1989-09-26 1991-10-23 Siemens Aktiengesellschaft Method and circuit for replacement control, particularly for a system containing digital memory elements
US5109496A (en) * 1989-09-27 1992-04-28 International Business Machines Corporation Most recently used address translation system with least recently used (LRU) replacement
US5153595A (en) * 1990-03-26 1992-10-06 Geophysical Survey Systems, Inc. Range information from signal distortions
CA2045756C (fr) * 1990-06-29 1996-08-20 Gregg Bouchard File d'attente combinee pour donnees invalides et donnees retournees dans un systeme multiprocesseur
EP0463967A3 (en) * 1990-06-29 1993-02-24 Digital Equipment Corporation Cache set selection for high-performance processor
CA2078312A1 (fr) 1991-09-20 1993-03-21 Mark A. Kaufman Processeur de donnees numeriques a pagination amelioree
CA2078310A1 (fr) * 1991-09-20 1993-03-21 Mark A. Kaufman Processeur numerique a memoire repartie
US5384713A (en) * 1991-10-23 1995-01-24 Lecroy Corp Apparatus and method for acquiring and detecting stale data
US5345582A (en) * 1991-12-20 1994-09-06 Unisys Corporation Failure detection for instruction processor associative cache memories
EP0553743A1 (fr) * 1992-01-31 1993-08-04 Motorola, Inc. Contrôleur d'antémémoire
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
US5898854A (en) * 1994-01-04 1999-04-27 Intel Corporation Apparatus for indicating an oldest non-retired load operation in an array
JP3030229B2 (ja) * 1994-06-20 2000-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを転送する方法及びデータ記憶システム
US5606688A (en) * 1994-08-31 1997-02-25 International Business Machines Corporation Method and apparatus for dynamic cache memory allocation via single-reference residency times
US6081623A (en) * 1995-10-11 2000-06-27 Citrix Systems, Inc. Method for lossless bandwidth compression of a series of glyphs
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
US5845317A (en) * 1995-11-17 1998-12-01 Micron Technology, Inc. Multi-way cache expansion circuit architecture
US5913216A (en) * 1996-03-19 1999-06-15 Lucent Technologies, Inc. Sequential pattern memory searching and storage management technique
US5765192A (en) * 1996-05-01 1998-06-09 Sun Microsystems, Inc. Method and computer program product to reuse directory search handles
US6057857A (en) 1996-06-12 2000-05-02 Citrix Systems, Inc. Method for the lossless compression of lines in a distributed computer system
US5961632A (en) * 1996-07-25 1999-10-05 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
US5822759A (en) * 1996-11-22 1998-10-13 Versant Object Technology Cache system
US6032233A (en) * 1997-06-27 2000-02-29 International Business Machines Corporation Storage array allowing for multiple, simultaneous write accesses
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6256712B1 (en) 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6343350B1 (en) * 1998-02-13 2002-01-29 International Business Machines Corporation Conserving storage space by means of low resolution objects
US7127525B2 (en) * 2000-05-26 2006-10-24 Citrix Systems, Inc. Reducing the amount of graphical line data transmitted via a low bandwidth transport protocol mechanism
US6856651B2 (en) * 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
EP1330720B1 (fr) * 2000-07-25 2008-05-28 Juniper Networks, Inc. Architecture de reseau et procedes de codage transparent de sessions croisees en ligne et de transport de donnees de communications reseau
JP2003167751A (ja) * 2001-04-24 2003-06-13 Ricoh Co Ltd プロセッサ処理方法およびプロセッサシステム
US7230949B2 (en) * 2001-08-24 2007-06-12 Juniper Networks, Inc. Efficient method and system for automatic discovery and verification of optimal paths through a dynamic multi-point meshed overlay network
US20030084249A1 (en) * 2001-10-31 2003-05-01 Johnson David J.C. Preemptive eviction of stale entries is a computer cache by use of age-bits
US6826656B2 (en) * 2002-01-28 2004-11-30 International Business Machines Corporation Reducing power in a snooping cache based multiprocessor environment
US7130931B2 (en) * 2003-06-18 2006-10-31 International Business Machines Corporation Method, system, and article of manufacture for selecting replication volumes
JP4327669B2 (ja) * 2004-06-29 2009-09-09 徳元 王 キャッシュ装置及び方法
US20060031639A1 (en) * 2004-08-06 2006-02-09 International Business Machines Corporation Write unmodified data to controller read cache
US8423673B2 (en) 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8171169B2 (en) * 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US8325795B1 (en) 2008-12-01 2012-12-04 Adobe Systems Incorporated Managing indexing of live multimedia streaming
US8782143B2 (en) * 2008-12-17 2014-07-15 Adobe Systems Incorporated Disk management
EP2598998A4 (fr) * 2010-07-27 2014-10-15 Freescale Semiconductor Inc Appareil et procédé de réduction de temps d'attente de processeur
US9965607B2 (en) * 2012-06-29 2018-05-08 Apple Inc. Expedited biometric validation
CN104781797B (zh) * 2012-09-14 2017-05-31 英派尔科技开发有限公司 多处理器架构中的高速缓存一致性目录
KR101638064B1 (ko) 2013-02-11 2016-07-08 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 캐시 제거 통지를 디렉토리로 수집
US9928355B2 (en) 2013-09-09 2018-03-27 Apple Inc. Background enrollment and authentication of a user
GB2521227B (en) * 2013-12-16 2020-11-25 Advanced Risc Mach Ltd Invalidation of index items for a temporary data store
US10901908B2 (en) 2019-01-16 2021-01-26 International Business Machines Corporation Storing data into a memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3786427A (en) * 1971-06-29 1974-01-15 Ibm Dynamic address translation reversed
US3949368A (en) * 1974-01-23 1976-04-06 Data General Corporation Automatic data priority technique
US3958228A (en) * 1975-03-20 1976-05-18 International Business Machines Corporation Fault tolerant least recently used algorithm logic
US4056844A (en) * 1974-02-26 1977-11-01 Hitachi, Ltd. Memory control system using plural buffer address arrays
GB2009982A (en) * 1977-12-08 1979-06-20 Honeywell Inf Systems Replacement location selection in cache memory
FR2444299A1 (fr) * 1978-12-11 1980-07-11 Honeywell Inf Systems Dispositif pour l'effacement selectif d'une antememoire

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3866183A (en) * 1973-08-31 1975-02-11 Honeywell Inf Systems Communications control apparatus for the use with a cache store
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
US4008460A (en) * 1975-12-24 1977-02-15 International Business Machines Corporation Circuit for implementing a modified LRU replacement algorithm for a cache
US4092713A (en) * 1977-06-13 1978-05-30 Sperry Rand Corporation Post-write address word correction in cache memory system
US4136386A (en) * 1977-10-06 1979-01-23 International Business Machines Corporation Backing store access coordination in a multi-processor system
US4195343A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Round robin replacement for a cache store
JPS54128639A (en) * 1978-03-30 1979-10-05 Toshiba Corp Control system for cash memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3786427A (en) * 1971-06-29 1974-01-15 Ibm Dynamic address translation reversed
US3949368A (en) * 1974-01-23 1976-04-06 Data General Corporation Automatic data priority technique
US4056844A (en) * 1974-02-26 1977-11-01 Hitachi, Ltd. Memory control system using plural buffer address arrays
US3958228A (en) * 1975-03-20 1976-05-18 International Business Machines Corporation Fault tolerant least recently used algorithm logic
GB2009982A (en) * 1977-12-08 1979-06-20 Honeywell Inf Systems Replacement location selection in cache memory
FR2444299A1 (fr) * 1978-12-11 1980-07-11 Honeywell Inf Systems Dispositif pour l'effacement selectif d'une antememoire

Also Published As

Publication number Publication date
GB2068155B (en) 1984-04-04
JPH0470656B2 (fr) 1992-11-11
JPS56114187A (en) 1981-09-08
FR2474721B1 (fr) 1987-09-11
CA1161172A (fr) 1984-01-24
AU540144B2 (en) 1984-11-01
DE3102150C2 (de) 1994-04-28
GB2068155A (en) 1981-08-05
AU6594881A (en) 1982-04-01
DE3102150A1 (de) 1981-12-17
US4322795A (en) 1982-03-30

Similar Documents

Publication Publication Date Title
FR2474721A1 (fr) Dispositif de memoire d&#39;antememoire
FR2667706A1 (fr) Antememoire hierarchique a circuits integres.
FR2624994A1 (fr) Systeme de commande de registre intermediaire de traduction
EP0074390A1 (fr) Appareil permettant de maintenir l&#39;integrite d&#39;une ante-memoire dans un environnement de memoire utilisee en commun.
FR2472233A1 (fr) Dispositif de commande de memoire pour systeme de traitement des donnees
FR2519460A1 (fr) Agencement de memoire pouvant fonctionner en antememoire et en memoire locale
EP0072179A2 (fr) Effacement d&#39;adresses invalides dans une mémoire cache
US5729712A (en) Smart fill system for multiple cache network
EP1510925A2 (fr) Mémoire cache à lecture asynchrone et dispositif de controle de l&#39;accès à une mémoire de données comprenant une telle mémoire cache
FR2881540A1 (fr) Procede et systeme destines a empecher que des lignes de memoire cache soient videes jusqu&#39;a ce que les donnees stockees dans celles-ci ne soient utilisees.
FR2828567A1 (fr) Systeme de stockage a memoire flash a base de fenetres et procedes de gestion et d&#39;acces pour un tel systeme
EP0044039A1 (fr) Objet portatif individualisé du genre carte de crédit
EP1748374A1 (fr) Procédé et dispositif de protection d&#39;une mémoire contre les attaques par injection d&#39;erreur
FR2487548A1 (fr) Systeme de memoire avec dispositif de diagnostic
FR2487561A1 (fr) Systeme de memoire dynamique
EP0392932B1 (fr) Procédé et dispositif pour accélérer les accès mémoire, utilisant un algorithme LRU modifié
BE897587A (fr) Circuit parallele de controle de redondance cyclique
FR2480459A1 (fr) Systeme de traitement de donnees a un dispositif d&#39;appariement d&#39;adresses de memoire de controle
RU2237278C2 (ru) Разряды состояния для кэш-памяти
CA1127317A (fr) Dispositif de conversion d&#39;adresse virtuelle en adresse reelle
EP0580727B1 (fr) Circuit coupleur et son utilisation dans une carte et procede
FR2533737A1 (fr) Reseau de resolution de l&#39;algorithme de l&#39;element le moins recemment utilise
EP0251861A1 (fr) Unité de gestion de mémoire
FR2901035A1 (fr) Procede et dispositif de gestion d&#39;une table de correspondance d&#39;acces a une memoire
US3701984A (en) Memory subsystem array

Legal Events

Date Code Title Description
ST Notification of lapse
AR Application made for restoration
BR Restoration of rights
ST Notification of lapse