FR2651050A1 - Systeme d'antememoire destine a etre utilise dans un systeme informatique - Google Patents

Systeme d'antememoire destine a etre utilise dans un systeme informatique Download PDF

Info

Publication number
FR2651050A1
FR2651050A1 FR9006799A FR9006799A FR2651050A1 FR 2651050 A1 FR2651050 A1 FR 2651050A1 FR 9006799 A FR9006799 A FR 9006799A FR 9006799 A FR9006799 A FR 9006799A FR 2651050 A1 FR2651050 A1 FR 2651050A1
Authority
FR
France
Prior art keywords
cache
memory
page
pages
information
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
FR9006799A
Other languages
English (en)
Other versions
FR2651050B1 (fr
Inventor
Eric Hartwig Jensen
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of FR2651050A1 publication Critical patent/FR2651050A1/fr
Application granted granted Critical
Publication of FR2651050B1 publication Critical patent/FR2651050B1/fr
Granted 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

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

Un système de mise en antémémoire comprend une mémoire centrale divisée en pages, colonnes et lignes, ainsi qu'une antémémoire ayant autant de lignes que chaque page de la mémoire centrale et assez de colonnes pour stocker l'information d'une ligne quelconque de la mémoire principale plus une étiquette de page. L'étiquette de page contient des bits indiquant chacun l'une d'un nombre limité de pages pouvant être stockées en même temps dans l'antémémoire 16, 18. Le système comprend en plus un cache d'étiquettes de pages 32, 33 avec un nombre de lignes égal à ce nombre limité de pages et une capacité suffisante pour mémoriser la zone d'étiquette d'une ligne stockée dans l'antémémoire, ainsi qu'un moyen 12 pour rechercher dans le cache 32, 33 des adresses d'informations stockées dans l'antémémoire. Application de manière générale aux systèmes à ordinateur et mémoire à accès sélectif.

Description

26 51050
ARRIERE-PLAN DE L'INVENTION
1. Domaine de l'invention
Cette invention concerne les systèmes infor-
matiques et plus particulièrement les procédés et dispositifs pour adresser les informations contenues
dans des antémémoires utilisées par un système informa-
tique. 2. Historique de l'art antérieur Les antémémoires. sont utilisées dans les systèmes informatiques pour accélérer le fonctionnement global du système. La théorie sur laquelle est basé l'emploi d'une antémémoire est qu'un système atteint une vitesse plus élevée en utilisant une petite partie d'une mémoire vive (RAM) très rapide comme une antémémoire, en même temps qu'une plus grande partie, plus lente, formant une mémoire RAM principale ou centrale. Si des données et des instructions sont appelées de la mémoire centrale et placées dans l'antémémoire à mesure qu'elles sont nécessaires pour le programme et si le système consulte d'abord l'antémémoire pour voir si l'information requise y est disponible, le système trouvera habituellement l'information désirée dans l'antémémoire et fonctionnera par conséquent à une vitesse correspodnant à celle d'un système qui utiliserait
principalement une antémémoire à haute vitesse.. Habi-
tuellement, c'est ce qui arrive effectivement parce que,
statistiquement, l'information.dans une partie pa.rticu-
lière quelconque d'un processus qui vient d'être uti-
lisée a plus de chances d'être requise immédiatement que d'autres informations qui n'ont pas été utilisées récemment. De nombreux systèmes de mise en antémémoire ont été décrits dans l'art antérieur. Une manière de concevoir une antémémoire employée dans un système de f mémoire virtuelle avec pagination à la demande consiste à donner à l'antémémoire la même capacité qu'une page de la mémoire centrale. Lorsque, dans un tel système, une information est extraite de la mémoire centrale et placée dans une antémémoire ou cache, elle peut être stockée dans la même ligne de l'antémémoire qu'à la ligne de la page d'o elle a été extraite dans la mémoire centrale. L'information peut être stockée dans l'antémémoire ensemble avec son adresse de page dans la mémoire centrale. Chaque ligne de l'antémémoire d'un tel système peut provenir d'une quelconque page particulière de la mémoire centrale, si bien que les lignes voisines dans l'antémémoire peuvent avoir des adresses de pages entièrement différentes. L'adresse de page est stockée comme une partie d'une zone d'étiquette, sous la forme d'une série de bits de poids fort de l'adresse, qui, en plus de la désignation de la page, contiennent des informationsde protection et de commande, indiquant par exemple si l'information est protégée en lecture ou en écriture et si l'information est valide. Dans un système particulier, une telle zone d'étiquette peut nécessiter approximativement seize bits pour représenter
l'information d'étiquette.
Avec un tel système, capable d'accéder a n'importe quelle ligne dans une antémémoire, le système peut déterminer si oui ou non l'information requise se
trouve dans l'antémémoire (si oui ou non il y a pré-
sence) en examinant la ligne particulière désignée dans l'adresse recherchée pour voir si le numéro de page exact est mémorisé dans la zone d'étiquette. Si l'adresse de page virtuelle à la ligne désirée dans l'antémémoire correspond à l'adresse de page virtuelle
désirée, il y a présence;et l'information dans l'anté-
mémoire est utilisée sans qu'il soit nécessaire d' accéder à la mémoire centrale. Si l'information n'est pas présente dans l'antémémoire, le système doit temporiser, accéder à la mémoire principale, remplacer la ligne en question dans l'antémémoire et traiter
ensuite l'information.
Comme le taux de présence atteint habituellement une valeur aussi élevée que quatre-vingt quinze pour- cent, certains systèmes informatiques, utilisant des
procédures pipeline, vont de l'avant et traitent l'in-
formation trouvée à la ligne adressée de l'antémémoire sans attendre le résultat de la comparaison d'étiquettes pour déterminer si l'information possède l'adresse de page virtuelle correcte, ceci afin d'éliminer, dans la plupart des cas, le temps pris par une comparaison d'étiquettes. Dans ce cas, la comparaison d'étiquettes est effectuée pendant le traitement de l'information; s'il y a absence, l'information inexacte est simplement évacuée. Globalement, cette façon de procéder est plus
rapide que d'effectuer d'abord la comparaison d'éti-
quettes pour chaque adresse dans l'antémémoire..
Bien entendu, un tel système a des inconvé-
nients. S'il y a absence dans l'antémémoire, plusieurs cycles d'horloge peuvent se passer avant qu'il soit accédé à la mémoire centrale pour trouver l'information absente dans l'antémémoire. De plus, le système pipeline
doit contenir suffisamment d'étages pipeline addition-
nels pour permettre le débordement etl'évacuation d'in-
formations incorrectes.En outre, le système utilise un
espace adresses relativement important dans l'antémé-
moire pour fournir l'espace nécessaire aux étiquettes ser-
vant à désigner les pages dans la mémoire centrale et aux
informations de commnade et de protection.
RESUME DE L'INVENTION
Un but général de la présente invention est
donc d'améliorer et d'accélérer le fonctionnement de sys-
tèmes informatiques.
Un but supplémentaire de la présente invention est de réduire la capacité et d'augmenter la vitesse
d'une antémémoire utilisée dans un système informatique.
Ces buts de l'invention, ainsi que d'autres encore, sont atteints par un dispositif d'antémé-
moire, destiné à être utilisé dans un système informa-
tique possédant une mémoire centrale divisée en un nombre prédéterminé de pages, comportant un nombre
prédéterminé de colonnes et de lignes d'éléments de mé-
moire, qui comprend une antémémoire avec le même nombre de lignes d'éléments de mémoire que les pages de la mémoire centrale et une capacité de ligne suffisante pour stocker au moins l'information contenue dans une ligne quelconque de la mémoire centrale plus la zone d'étiquette pour l'information dans la mémoire
centrale, la zone d'étiquette con-
tenant un nombre de bits indiquant chacun l'une seulement d'un nombre limité de pages pouvant être stockées en même temps dans l'antémémoire un cache d'étiquettes de pages avec un nombre de lignes égal au nombre limité de pages pouvant être stockées en même temps dans l'antémémoire et une capacité de ligne suffisante pour mémoriser la zone adresse comportant l'adresse de page virtuelle d'une ligne stockée dans l'antémémoire, ainsi qu'un moyen pour rechercher dans le cache d'étiquettes de pages des
adresses d'informations stockées dans l'antémémoire.
Un tel système réduit la taille de l'espace adresses nécessaire dans l'antémémoire en éliminant la plus grande partie de la capacité de mémorisation requise pour stocker des étiquettes de pages virtuelles et accroît la vitesse de fonctionnement du système du fait que l'accès à la mémoire centrale peut commencer plus tôt et que l'invalidation de l'antémémoire peut s'effectuer plus rapidement que dans les systèmes de
l'art antérieur.
Selon un autre mode de réalisation de l'in-
vention, un système d'antémémoire, - comprenant une antémémoire possédant un nombre prédéterminé de lignes de mémoire avec un espace de mémoire prédéterminé dans chaque ligne, le nombre de lignes de mémoire étant égal au nombre de lignes de mémoire des pages de la mémoire centrale d'un système informatique associé, l'espace de mémoire de chaque ligne étant au moins suffisant pour
stocker l'information contenue dans une ligne quel-
conque de mémoire de pages de la mémoire centrale du système informatique associé, l'étiquette de page étant suffisante pour désigner un nombre
limité de pages de la mémoire centrale et le système com-
prenant un cache d'étiquettes de pages avec un nombre de lignes égal au nombre limité de pages pouvant être
stockées en même temps dans l'antémémoire et une capa-
cité suffisante pour mémoriser l'adresse de page d'une ligne mémorisée dans le cache, ainsi qu'un moyen pour rechercher dans le cache d'étiquettes de pages des
adresses d'informations stockées dans l'antémémoire.
Selon d'autres caractéristiques de l'inven-
tion, l'étiquette de page contient deux bits de mémoire, le système comprend en outre un moyen destiné à dériver
un signal de sortie pour indiquer une présence dans l'anté-
mémoire et le nombre limité de pages ne dépasse pas trois.
L'étiquette de page peut comporter un moyen pour indi-
quer que l'information est invalide, moyen qui peut contenir des bits désignant normalement des pages de mémoire. Le cache d'étiquettes de pages peut être constitué d'une mémoire associative et l'antémémoire peut être conçue pour que le contenu de la capacité de mémoire prévue pour les étiquettes de pages puisse être
effacé instantanément ("flash cleared").
D'autres caractéristiques et avantages de l'invention ressortiront plus clairement de la
description qui va suivre d'un exemple de réalisation
non limitatif, ainsi que des dessins annexés, sur lesquels: - la figure 1 montre une forme de système d' antémémoire- selon l'art antérieur pour une mémoire d'ordinateur;
- la figure 2 est un schéma synoptique mon-
trant la constitution de la mémoire centrale et de l'antémémoire dans un système d'antémémoire selon l'art antérieur, comme celui représenté sur la figure 1; et
- la figure 3 est un schéma synoptique mon-
trant un système d'antémémoire selon la présente invention.
NOTATION ET NOMENCLATURE
Certaines parties -des descriptions détaillées
qui vont suivre sont présentées en termes d'algorithmes et de représentations symboliques d'opérations sur des bits de données dans une mémoire d'ordinateur. Ces
descriptions algorithmiques et représentations sont les
moyens utilisés par les informaticiens pour communiquer le plus efficacement possible la substance de leur travail à d'autres hommes du métier. Les algorithmes présentés ici ne sont pas liés de façon inhérente à un
quelconque ordinateur ou autre appareil particulier.
Un algorithme, tel que l'on l'entend ici et de
manière générale, est considéré comme une séquence autorco-
hérente d'actions menant à un résultat désiré. Les
actions demandent des manipulations physiques de- quan-
tités physiques. Usuellement, bien que cela ne soit pas nécessaire, ces quantités prennent la forme de signaux
électriques ou magnétiques susceptibles d'être mémo-
risés, transférés, combinés, comparés et manipulés d'autres manières. Il s'est avéré commode, à certains moments, principalement pour des motifs liés à l'usage général, de désigner ces signaux par bits, valeurs, éléments, symboles, caractères, termes, nombres ou analogues. Il est cependant à souligner que tous ces termes -et des termes similaires sont à associer aux quantités physiques appropriées et représentent simple- ment des appellations convenables appliquées à ces quantités. De plus, les manipulations effectuées sont désignées souvent par des termes tels qu'addition ou comparaison, lesquels sont communément associés à des
opérations mentales effectuées par un opérateur humain.
Aucune capacité semblable d'un opérateur humain n'est nécessaire ou désirable, dans la plupart des cas, dans l'une quelconque des opérations décrites dans le présent mémoire et faisant partie de l'invention; les opérations sont effectuées par la machine. Des machines utiles pour exécuter les opérations entrant dans le cadre de la
présente invention, comprennent des ordinateurs numé-
riques universels ou d'autres dispositifs semblables.
Dans tous les cas, il y a lieu de ne pas perdre de vue la distinction entre les étapes d'un procédé pour faire fonctionner un ordinateur et la méthode de calcul proprement dite. La présente invention décrit des
dispositifs et des étapes de procédé pour faire fonc-
tionner un ordinateur dans le traitement de signaux électriques ou d'autres signaux physiques (mécaniques ou chimiques par exemple) en vue d'engendrer d'autres signaux
physiques désirés.
DESCRIPTION DU MODE DE REALISATION PREFERE
Lorsqu'on se reporte maintenant à la figure 1, celle-ci montre, par un schéma synoptique, une partie d'un système d'antémémoire pour ordinateur selon l'art antérieur. Le système représenté, désigné globalement par la référence 10, est ce que l'on appelle un système d'antémémoire à allocation directe; un tel système est décrit ici dans le seul but de faciliter
la description et l'invention n'y est nullement limitée.
L'explication du système 10 utilise différentes valeurs
pour décrire des parties du système à des fins d'illus-
tration uniquement. Le système 10 représenté comporte une unité centrale (UC) 12, une mémoire centrale 14, une antémémoire d'instructions 16 et une antémémoire de données 18. Bien que les instructions et les données soient souvent contenues dans des antémémoires séparées,
comme représenté sur la figure 1, ceci n'est pas tou-
jours le cas ni nécessaire à la mise en oeuvre de l'invention. Dans certains systèmes de l'art antérieur utilisant des antémémoires, la mémoire centrale 14 est divisée en un certain nombre de pages fixes de format, hauteur et largeur prédéterminés. L'agencement est tel que chaque antémémoire permet de stocker l'information contenue dans une page de la mémoire centrale. Autrement
dit, la capacité de la mémoire.centrale est essentiel-
lement un multiple de la capacité de 1' antémémoire.
Ceci est illustré par la figure 2, o la mémoire cen-
trale 14 est représentée divisée, par exemple, en quatre pages individuelles désignées par 0 à 3. Chaque page possède la même hauteur en ce sens qu'elle comporte le même nombre de lignes de mémoire. Chaque page possède également la même largeur en ce sens que chaque ligne contient le même nombre de bits (quatre octets ou un mot d'information de- mémoire dans un système typique). Par conséquent, n'importe quel mot dans la mémoire centràle 14 peut être adressé par la désignation de son numéro de
page et de sa ligne.
Lorsque, dans un tel système, une information est extraite de la mémoire centrale 14 et placée dans
l'une des antémémoires 16 ou 18(que l'antémémoire est utili-
sée pour des instructions, des données ou pour les deux), l'information et l'adresse de page virtuelle de cette information dans la mémoire centrale 14 sont mémorisées sur la même ligne de l'antémémoire que la ligne d'o l'information a été extraite dans la page en question de la mémoire centrale. Avec ce système d'adressage, l'UC 12 peut déterminer si une quelconque information à laquelle il faut accéder se trouve dans l'antémémoire (auquel cas on parlera d'une présence) en adressant simplement la ligne concernée de l'antémémoire pour voir
si l'adresse de page virtuelle y est présente.
L'adresse de page virtuelle est mémorisée comme une partie d'une zone d'étiquette, constituée par une série de bits de poids fort de l'adresse, qui
contient, en plus de l'adresse de page, des infor-
mations de protection et de commande, indiquant par exemple si oui ou non l'information peut être lue ou écrite et par qui. Dans un système préféré, une telle zone d'étiquette peut demander approximativement seize bits pour représenter l'information d'étiquette.. Il est à noter qu'avec un tel système, chaque ligne de l'une ou l'autre des antémémoires 16 et 18 peut provenir de
n'importe quelle page particulière de la mémoire cen-
trale 14. Donc, les lignes voisines dans l'antémémoire
peuvent avoir des étiquettes totalement différentes.
Dans l'antémémoire 16 montrée par la figure 2, cette information d'adresse de page virtuelle est mémorisée dans la partie de chaque ligne représentée dans la partie gauche de l'antémémoire 16 de cette figure, partie qui constitue un espace supplémentaire, au-delà de celui nécessaire pour la mémorisation de l'instruction ou des données sur chaque ligne.- On comprendra que la partie de l'antémémoire 16 nécessaire
pour loger la partie étiquette de l'adresse est rela-
tivement grande; par exemple, si la mémoire centrale contient 216 pages de mémoire, cette étiquette. demande 16 bits de mémoire. S'agissant d'une antémémoire, le matériel nécessaire pour réaliser cet espace d'adresse
est de la mémoire rapide, donc coûteuse.
Lorsque 1'UC 12 explore d'abord l'antémémoire 16 ou 18 pour déterminer si une quelconque information recherchée y est présente, une comparaison est effectuée entre l'adresse désirée et les adresses des informations contenues dansl'antémémoire. Cette opération consiste à comparer d'abord l'adresse de ligne recherchée avec les lignes de l'antémémoire en vue de la sélection de la ligne correcte.Quand la ligne correcte a été sélectionnée, l'adresse de page virtuelle recherchée est comparée avec l'adresse de page virtuelle de la zone d'étiquette mémorisée à cette ligne de l'antémémoire 16. Si une adresse dans l'antémémoire 16 correspond à l'adresse désirée quant à la page et au numéro de ligne (ainsi qu'à la position de ligne dans certains systèmes), il y a ce que l'on appelle présence;et l'information contenue
dans l'antémémoire est utilisée sans qu'il soit néces-
saire d'accéder à la mémoire centrale 14 pour ache-
ver la recherche. Si l'information n'est -pas présente dans l'antémémoire, le système est obligé, après ce contrôle, d'accéder à la mémoire principale 14 pour obtenir l'information et l'introduire en remplacement dans la ligne particulière de l'antémémoire 16. C'est ensuite
seulement que l'UC 12 peut traiter l'information.
Ainsi qu'il a été expliqué plus haut, afin d'éliminer la perte de temps normalement nécessaire pour une comparaison de zones d'étiquettes, certains systèmes informatiques, utilisant des traitements pipeline, commencent à traiter l'information trouvée à la ligne
adressée del'antémémoire sans attendre que la comparai-
son des étiquettes soit terminée. Cette comparaison est effectuée pendant que l'information est traitée et, s'il
y a absence, c'est-à-dire si la recherche dans l'anté-
mémoire est sans succès, l'information incorrecte intro-
duite dans le pipeline de traitement est simplement 11. J,ette 4açon de procédér est plus rapide que celle qui consiste à comparer d'abord les étiquettes pour chaque adresse de l'antémémoire parce que le taux de présence atteint usuellement la valeur élevée de quatre-vingt quinze pourcent, si bien que l'extraction d'une information de la mémoire principale est seulement nécessaire, en moyenne, une fois sur
vingt. Cependant, le système a quelques inconvénients.
En cas d'absence dans l'antémémoire, plusieurs cycles d'horloge peuvent se passer avant que l'accès à la
mémoire principale 14 ne soit effectué en vue de l'ex-
traction de l'information absente dans l'antémémoire. De
plus, le système de traitement en pipeline doit com-
porter suffisamment d'étages pour permettre le déborde-
er-r e? 1' vacua--ic e tzuie information incorrecte, ce qui
représente un coût supplémentaire pour le système.
Enfin, le système utilise un espace adresses relative-
ment important dans l'antémémoire pour Fournir l'esPace -êcessaire aux êicue-tes servant à désigner les adresses de pages de
la reémoire principae, aux orotections, et analo-
_ues. La figure 3 représente un système
3î c'antémémoire conçu conformément à la présente inven-
tion, qui réduit substantiellement les problèmes précités. Le système 30 selon la figure 3 comporte une
unité centrale 12, une mémoire centrale 14, une antémé-
moire d'instructions 16 et une antémémoire de données 18, exactement comme montré par la figure 1. A l'antémémoire 16 est associé un premier cache d'étiquettes de pages 32. Un second cache d'étiquettes de pages 33 est associé à l'antémémoire de données -18. Pour
faciliter la description, la figure 3 montre seulement
l'une des antémémoires 16 et le cache d'étiquettes de
pages 33 qui lui est associé.
Le système 30 montré par la figure 3 fonc-
tionne dans une large mesure comme le système selon l'art antérieur. Lorsqu'une information contenue dans la mémoire principale 14 est nécessaire pour un processus, elle est chargée, ensemble avec son étiquette, dans l'une des antémémoires. Cependant, dans le système 30, les données mémorisées dans la zone d'étiquette à chaque ligne de l'antémémoire 164 pour représenter l'adresse de page virtuelle, comprennent seulement un petit nombre des bits normalement utilisés pour représenter l'adresse de page. Pour obtenir ce résultat, au lieu de permettre le chargement de lignes de toutes les pages de la mémoire principale dans l'une des antémémoires, le
système 30 permet a un instant donné la mémorisation des infor-
mations provenant seulement d'un petit nombre de pages de la mémoire centrale 14 (ce deux pages par exemple) dans l'une
des antémémoires.
Donc, si la mémoire principale 14 contient seize pages indivicuelles de mémoire, par exemple, seulement deux de ces pages pourraient être représentées en même temps dans une antémémoire particulière. Bien que cette restriction puisse apparaitre comme une limitation des possibilités du système, les mêmes données statistiques précitées qui autorisent des taux de présence aussi élevés que quatre-vingt quinze pour-cent, font ressortir que dans la plupart des programmes, l'information nécessaire dans des segments particuliers de processus sera souvent contenue dans une, deux ou trois pages seulement de la mémoire centrale. Dans un mode de réalisation préféré comportant plus de 65.000 pages de mémoire, l'information contenue dans 'antémémoire d'instructions tient car-s quatre pages de la mémoire centrale, tandis que l'information dans l'antémémoire de données tient ca-s douze à seize pages de la mémoire centrale. Par conséquent, une telle restriction, du moins dans un système -d'antémémoire divisée contenant des instructions et des données dans des antlméroires différentes, impose en fait une faible limitation
au systeème.
Par contre, les avantages procurés par cette restrictio' sont importants. En permettant aux informations provenant de seu!eme'T deux pages à la fois de la mémoire principale (ou à un
autre petit nombre de pages) de séjourner dans l'anté-
mémoire, il suffit de deux bits (1 bit par page) pour désigner dans la zone d'étiquette de l'antémémoire la
page d'o provient l'information et les différents bits -
de commande et de protection, ce qui supprime environ.
seize bits de chaque ligne de l'antémémoire. Ceci est possible parce que chacun des deux bits représente l'une ou l'autre de deux lignes dans le cache d'étiquettes de
pages 32 associé.
Chaque cache d'étiquettes]de pages 32- est construit, comme représenté sur la figure 3, avec deux
lignes de mémoire, comprenant chacune un nombre suffi-
sant de bits pour enregistrer toute la zone d'étiquette contenant l'adresse de page virtuelle de l'une des pages
de la mémoire principale, résidant dans l'antémé-
moire 16 associée. Donc, -essentiellement toute la zone d'adresses d'étiquettes est enlevée des antémémoires et placée dans le cache d'étiquettes de pages, o elle apparaît une fois seulement au lieu d'un nombre de fois correspondant au nombre -de lignes contenues dans l'antémémoire. Cette disposition représente une économie significative en mémoire rapide
et onéreuse.
A la place de la zone d'adresses d'étiquettes
complète, la zone d'adresses d'étiquettes dans l'anté-
mémoire 16, représentée ici à titre d'exemple, contient
seulement un"un ou un zéro dans chacune des deux posi-
tions binaires indiquant les pages concernées de la mémoire centrale 14. Si un un apparaît à la première position (comme montré dans la ligne 0 de l'antémémoire représentée sur la figure 3), cela indique la page dans
la ligne supérieure des deux lignes du cache d'éti-
quettes de pages 32 associé. Si la seconde position binaire contient un eun, la ligne inférieure des deux lignes du cache d'étiquettes de pages 32 associé est indiquée. L'absence d'un 'un" dans l'une comme dans l'autre position d'étiquette dans l'antémémoire 16 peut être utilisée pour indiquer que l'information dans cette ligne de l'antémémoire est invalide et ne doit être
utilisée dans aucun processus.
Si, en accédant à une ligne particulière de l'antémémoire 16, un 'un' apparaît dans une position
particulière de l'adresse d'étiquette dans l'antémé-
moire, le cache d'étiquettes de pages 32 fournit alors l'i-
dentification de page virtuelle et les informations de pro-
tection et de commande pour cette ligne de l'antémémoire 16. Comme les antémémoires 16 et 18 de cet exemple sont chacune limitées à seulement deux pages de la mémoire
centrale, la ligne supérieure de chaque cache d'éti-
quettes de pages constitue une zone d'adresse suffisante pour toutes les lignes de cette page particulière dans l'antémémoire 16 et il en va de même pour la ligne inférieure en ce qui concerne les lignes de l'autre page
pouvant être représentée en même temps dans l'antémé-
moire 16.
Comme dans les systèmes de l'art antérieur, un contrôle de présence est effectué en allant à la ligne désignée dans l'adresse virtuelle recherchée et par la lecture de cette ligne. Les bits d'étiquette dans cette ligne indiquent alors, soit l'adresse de page appropriée, soit que l'information est invalide. Si une page est indiquée, les bits d'étiquette orientent la
comparaison vers la ligne appropriée du cache d'éti-
quettes de pages 32. Ce dernier fournit un signal de concordance pour celle de deux lignes concordantes qui contient l'adresse de page appropriée. Ce signal de concordance est délivré à une porte ET 40 ou à une porte ET 42. Cette porte reçoit également, en même temps, la sortie des bits d'étiquette de l'antémémoire 16. La porte ET 40 ou 42 en question délivre un signal de sortie à une porte OU 44 pour signaler qu'il y a concordance d'adresse d'étiquette et qu'il y a une présence. Si ni l'une ni l'autre ligne du cache d'étiquettes de pages ne contient une adresse
d'étiquette concordante ou si l'information est in-
valide, il n'y a pas de concordance et l'UC 12 doit
accéder à la mémoire centrale pour obtenir l'informa-
tion requise.
Si une tentative d'accès à l'antémémoire indique une.absehce, de sorte qu'il faut accéder à une information contenue en dehors du nombre limité de pages de la mémoire centrale stockées dans l'antémémoire concernée, il est nécessaire de remplacer l'une ou
l'autre des pages stockées à ce moment dans l'anté- mémoire par l'information provenant d'une autre page de la mémoire
centrale. Dans un mode de réalisation préféré de l'invention, on réalise ceci en utilisant une antémémoire dont le contenu peut être effacé instantanément d'une manière bien connue dans l'art antérieur. Une telle mémoire peut essentiellement comporter des positions binaires dans toutes les lignes, contenant des bits particuliers qui sont changés en parallèle. Par exemple, toutes les lignes ayant un "un', dans la première position binaire d'étiquette, peuvent être mises à "zéro' à cette position binaire. Comme indiqué plus haut, si des zéros apparaissent dans les deux positions binaires utilisées dans l'antémémoire 16
pour indiquer l'adresse de page virtuelle, le renseig-
nement ainsi fourni peut être utilisé pour indiquer que l'information à cette page est invalide. Par conséquent, lorsque l'UC examine ensuite la ligne concernée et trouve l'indication que l'information est invalide, elle
peut &rire. une nouvelle page à cette ligne de l'an-
témémoire 16.
Un avantage supplémentaire de l'invention est
cDlenu également par l'utilisation du cache d'éti-
guettes de pages selon l'invention. Dans les systèmes de mémoire d'ordinateur utilisant de multiples processeurs et une mémoire virtuelle, il est souvent nécessaire de libeller comme étant périmées des informations dans une antémémoire locale parce que la même information dans une
autre antérermoire a été écrite depuis que l'infor-
mation a été chargée dans le cache local en question.
Dans un système utilisant un cache d'étiquettes de pages, la cohérence de l'information peut être testée par comparaison avec l'information dans la zone d'étiquettes
du cache d'étiquettes de pages au lieu de l'antémémoire.
De cette manière il n'est pas nécessaire de prendre les antémémoires en charge au cours d'un tel contrôle. Cela
peut signifier qu'il n'y a pas de perte de temps dthor-
loge du système par suite de la réalisation d'un con-
trôle de cohérence d'une antémémoire locale.
De plus, il peut arriver que l'information
dans le cache n'est plus utile pour un accès particu-
lier, mais que la zone d'étiquette est encore contenue dans le cache d'étiquettes de-pages. Ei pareil cas, le processus d'effacement instantané peut être évité et les
données exactes, de même que la zone d'étiquette cor-
respondante, peuvent être chargées dans le cache.
Bien que l'invention ait été décrite relati-
vement à un mode de réalisation préféré, on comprendra que différentes modifications sont possibles sans sortir
du cadre de l'invention.

Claims (15)

REVENDICATIONS
1. Système d' antémémoire destiné à être utilisé dans un système informatique possédant une mémoire centrale divisée en un nombre prédéterminé de pages comportant un nombre prédéterminé de colonnes et lignes d'éléments de mémoire, comprenant une antémémoire avec le même nombre de lignes d'éléments de mémoire que chaque page de la mémoire centrale et une capacité suffisante pour stocker l'information contenue dans une
ligne quelconque de la mémoire centrale plus une éti-
quette de page pour l'information dans la mémoire centrale, l'étiquette de page contenant un
nombre de bits indiquant chacun l'un seule-
ment d'un nombre limité de pages pouvant être stockées en même temps dans l'antémémoire (16, 18) r un cache d'étiquettes de pages (32, 33) avec un nombre de lignes égal au nombre limité de pages pouvant être stockées en même temps dans l'antémémoire (16, 18) et une capacité suffisante pour mémoriser la zone étiquette d'une ligne stockée dans l'antémémoire, ainsi qu'un moyen (12) pour rechercher dans le cache d'étiquettes de pages (32, 33) des adresses d'informations stockées dans l'antémémoire
(16, 18).
2. Système d'antémémoire selon la
revendication 1, dans lequel l'étiquette de page con-
tient deux bits de mémoire.
3. Système d'antémémoire selon la revendication 1, comprenant en outre un moyen (40,. 42, 44) destiné à dériver un signal de sortie pour indiquer
une présence dans l'antémémoire.
4. Système d'antémémoire selon la revendication 1, dans lequel le nombre limité de pages
ne dépasse pas trois pages.
5. Système d'antémémoire dans lequel l'étiquette de page comporte un moyen pour indiquer que
l'information est invalide.
6. Système d'antémémoire selon la revendication 5, dans lequel le moyen pour indiquer que l'information est invalide contient des bits désignant
normalement des pages de mémoire.
7. Système d'antémémoire selon la revendication 1, dans lequel le cache d'étiquettes de
pages (32, 33) est constitué d'une mémoire associative.
8. Système d'antémémoire selon la revendication 1, dans lequel l'antémémoire (16, 18) est conçue pour que le contenu de la capacité de mémoire prévue pour les étiquettes de pages puisse être effacé
instantanément.
9. Système d'antémémoire comprenant une antémé-
moire possédant un nombre prédéterminé de lignes de mémoire avec un espace de mémoire prédéterminé dans chaque ligne, le nombre de lignes de mémoire étant égal au nombre de lignes de mémoire des pages de la mémoire centrale d'un système informatique associé, l'espace de mémoire de chaque ligne étahnt au moins suffisant pour
stocker l'information contenue dans une ligne quel-
conque de mémoire des pages de la mémoire centrale du système informatique associé, l'étiquette de page étant suffisante pour désigner un nombre limité de pages de la mémoire centrale (14) et le système comprenant un cache d'étiquettes de pages (32, 33.) avec un nombre de lignes égal au nombre limité de pages pouvant être stockées en même temps dans l'antémémoire (16, 18) et une capacité suffisante pour mémoriser l'adresse de page d'une ligne mémorisée dans l'antémémoire, ainsi qu'un moyen (UC) pour rechercher dans le cache d'étiquettes de pages (32, 33) des adresses d'informations stockées dans
l'antémémoire (16, 18).
i0. Système d'antémémoire selon la revendi-
cation 9, dans lequel l'étiquette de page contient deux
bits de mémoire.
11. Système d'antémémoire selon la revendication 9, comprenant en outre un moyen (40, 42, 44) destiné à dériver un signal de sortie pour indiquer une présence
dans l'ateémermoire.
12. Système d'antémémoire selon la revendication 9, dans lequel le nombre limité de pages ne dépasse pas
trois pages.
13. Système d'antémémoire selon la revendication 9, dans lequel l'étiquette de page comporte un moyen
pour indiquer que l'information est invalide.
14. Système d'antémémoire selon la revendication 13, dans lequel le moyen pour indiquer que l'information est invalide ccrien- ces bits désignant' normalement des
pages de mémoire.
15. Système d'antémémoire selon la revendication 9, dans lequel le cache d'étiquettes de pages (32, 33)
est constitué d'une mémoire associative.
16. Système d'antémémoire selon la revendication 9, dans lequel l'antémémoire (16, 18) est conçu pour que le contenu de la capacité de mémoire prévue pour les
étiquettes de pages puisse être effacé instantanément.
FR9006799A 1989-08-21 1990-05-31 Systeme d'antememoire destine a etre utilise dans un systeme informatique Granted FR2651050A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/400,122 US4969122A (en) 1989-08-21 1989-08-21 Apparatus for page tagging in a computer system

Publications (2)

Publication Number Publication Date
FR2651050A1 true FR2651050A1 (fr) 1991-02-22
FR2651050B1 FR2651050B1 (fr) 1995-01-06

Family

ID=23582312

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9006799A Granted FR2651050A1 (fr) 1989-08-21 1990-05-31 Systeme d'antememoire destine a etre utilise dans un systeme informatique

Country Status (3)

Country Link
US (1) US4969122A (fr)
CA (1) CA2022529C (fr)
FR (1) FR2651050A1 (fr)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190617B1 (en) * 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
EP0617363B1 (fr) * 1989-04-13 2000-01-26 SanDisk Corporation Substitution de cellules defectueuses dans une matrice EEProm
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
EP0624844A2 (fr) * 1993-05-11 1994-11-17 International Business Machines Corporation Architecture d'antémémoire entièrement intégrée
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
JP2964926B2 (ja) * 1995-08-29 1999-10-18 富士ゼロックス株式会社 データベース管理装置及び方法
US5721863A (en) * 1996-01-29 1998-02-24 International Business Machines Corporation Method and structure for accessing semi-associative cache memory using multiple memories to store different components of the address
US6202125B1 (en) 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US6209072B1 (en) 1997-05-06 2001-03-27 Intel Corporation Source synchronous interface between master and slave using a deskew latch
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6014732A (en) * 1997-10-22 2000-01-11 Hewlett-Packard Company Cache memory with reduced access time
US5893163A (en) * 1997-12-17 1999-04-06 International Business Machines Corporation Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
US5860101A (en) * 1997-12-17 1999-01-12 International Business Machines Corporation Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6272576B1 (en) 1998-01-20 2001-08-07 Micron Technology, Inc. Method for extending the available number of configuration registers
US6243775B1 (en) 1998-01-20 2001-06-05 Micron Technology, Inc. System for extending the available number of configuration registers
US6108733A (en) * 1998-01-20 2000-08-22 Micron Technology, Inc. Method for extending the available number of configuration registers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing
US3868642A (en) * 1971-08-25 1975-02-25 Siemens Ag Hierrarchial associative memory system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US4168541A (en) * 1978-09-25 1979-09-18 Sperry Rand Corporation Paired least recently used block replacement system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing
US3868642A (en) * 1971-08-25 1975-02-25 Siemens Ag Hierrarchial associative memory system

Also Published As

Publication number Publication date
CA2022529C (fr) 1995-10-10
CA2022529A1 (fr) 1991-02-22
US4969122A (en) 1990-11-06
FR2651050B1 (fr) 1995-01-06

Similar Documents

Publication Publication Date Title
FR2651050A1 (fr) Systeme d'antememoire destine a etre utilise dans un systeme informatique
FR2834574A1 (fr) Dispositif et procedes pour compresser une ligne de cache
FR2474721A1 (fr) Dispositif de memoire d'antememoire
FR2802318A1 (fr) Procede d'acces a des donnees dans un systeme en reseau et systeme en reseau
FR3027128A1 (fr)
FR2707774A1 (fr) Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux.
FR3045183A1 (fr) Procede de prediction d'une donnee a precharger dans une memoire cache
FR3055992A1 (fr) Gestion d'index dans une memoire flash
FR2645986A1 (fr) Procede pour accelerer les acces memoire d'un systeme informatique et systeme pour la mise en oeuvre du procede
EP0604310B1 (fr) Procédé de gestion d'une mémoire tampon, et système informatique l'incorporant
CA2596290C (fr) Methode et systeme pour maintenir la coherence d'une memoire cache utilisee par de multiples processus independants
EP1175122A1 (fr) Dispositif de gestion de mémoire permettant l'inscription de blocs de données par substitution
EP0251861A1 (fr) Unité de gestion de mémoire
FR3051574A1 (fr) Gestion du stockage dans une memoire flash
EP0662227B1 (fr) Procede de gestion de memoires d'un systeme informatique, systeme informatique et memoire mettant en oeuvre le procede
FR2609195A1 (fr) Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede
FR2705803A1 (fr) Procédé d'écriture d'informations dans une mémoire non-volatile.
EP0733977B1 (fr) Système informatique avec mémoires hiérarchisées
WO2011125001A1 (fr) Mémoire cache segmentée
FR2697652A1 (fr) Procédé de détermination automatique des probabilités associées à une fonction booléenne.
FR2627298A1 (fr) Systeme informatique a antememoire et procede pour acceder a des donnees dans un tel systeme
EP0921469B1 (fr) Procédé de gestion des ressources de mémoire dans une carte à microcircuit
EP2024841B1 (fr) Procede de gestion d'une memoire comportant des elements pourvus d'une information d'identification indicative de l'ascendance desdits elements
FR3050844A1 (fr) Procede d'allocation d'espace memoire
EP3155526A1 (fr) Recherche de correspondance d'élément dans une liste

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20060131