FR2621408A1 - Procede et systeme de gestion des adresses homonymes pour station de travail a antememoire a adressage virtuel et a reinscription - Google Patents

Procede et systeme de gestion des adresses homonymes pour station de travail a antememoire a adressage virtuel et a reinscription Download PDF

Info

Publication number
FR2621408A1
FR2621408A1 FR8812827A FR8812827A FR2621408A1 FR 2621408 A1 FR2621408 A1 FR 2621408A1 FR 8812827 A FR8812827 A FR 8812827A FR 8812827 A FR8812827 A FR 8812827A FR 2621408 A1 FR2621408 A1 FR 2621408A1
Authority
FR
France
Prior art keywords
cache
addresses
memory
data
page
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
FR8812827A
Other languages
English (en)
Other versions
FR2621408B1 (fr
Inventor
William Van Loo
John Watkins
Joseph Moran
William Shannon
Ray Cheng
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 FR2621408A1 publication Critical patent/FR2621408A1/fr
Application granted granted Critical
Publication of FR2621408B1 publication Critical patent/FR2621408B1/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/1063Address 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 virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring

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

L'invention concerne une station de travail dont le système d'exploitation utilise une antémémoire à réinscription à adressage virtuel, cette station de travail comportant un processeur central 11 relié à une matrice des paramétrages de l'antémémoire, une matrice des données de l'antémémoire 19, un tampon de réinscription 39, une unité de gestion de la mémoire, un registre d'adresse réelle, une mémoire principale 31 avec des adresses physiques, un détecteur de présence dans l'antémémoire et une logique de contrôle de la station de travail. Selon l'invention, il est prévu : des premiers moyens pour faire concorder par leurs bits d'adresse inférieurs toutes les adresses homonymes qui mappent la même adresse physique de la mémoire principale, à l'exception d'un ensemble prédéterminé d'adresses homonymes qui mappent des adresses physiques utilisées exclusivement par le système d'exploitation, de manière à pouvoir utiliser le même emplacement de la matrice des données de l'antémémoire, et des seconds moyens pour faire marquer comme étant des pages devant ignorer l'antémémoire les pages de l'ensemble prédéterminé d'adresses homonymes qui mappent des adresses physiques utilisées exclusivement par le système d'exploitation.

Description

La présente invention concerne certains perfectionnements matériels et
logiciels apportés aux stations de travail qui utilisent un adressage virtuel avec des systèmes d'exploitation multi-utilisateurs- à antémémoire à réinscription, notamment -des systèmes d'exploitation qui permettent à chaque utilisateur d'avoir en même temps une
pluralité de processus actifs.
A cet égard, l'invention sera, par commodité, décrite en référence à un système d'exploitation particulier multi-utilisateurs à plusieurs processus actifs qui est le - système d'exploitation Unix. Cependant, l'invention n'est pas limitée & une utilisation en relation avec le système d'exploitation Unix, et ne doit pas être interprétée comme relative à un système qui ne puisse être utilisé qu'avec-le
système d'exploitation Unix.
Dans une station de travail sous Unix, on peut améliorer de façon significative les performances du système en incluant, parmi les éléments du système, une antémémoire à réinscription à adressage virtuel. Cependant- l'un des problèmes qui se posent avec de tels systèmes est la prise en compte des adresses homonymes, c'est-à-dire de deux ou plusieurs adresses virtuelles qui mappent la même adresse
physique de la mémoire réelle.
Le problème se pose du fait que toute mise à jour' de donnée dans une antémémoire à réinscription qui est effectuée via une -adresse homonyme ne sera pas visible depuis un accès antémémoireà l'autre adresse homonyme, car
les deux adressès homonymes ne correspondront pas.
Plus précisément, l'adressage virtuel permet l'homonymie, c'est-à-dire la possibilité d'avoir plusieurs adresses virtuelles qui mappent la même adresse physique. Si, dans un système, on utilise sans restriction de mapppage de page une antémémoire à réinscription à adressage virtuel et à mappage direct, deux-adresses virtuelles'quelconques peuvent occuper
deux emplacements quelconques de, l'antémémoire tout en-
mappant la même adresse physique. Lorsque des blocs de l'antémémoire ont été modifiés, il est en général impossible de vérifier la cohérence des données entre emplacements -I quelconques de la mémoire. Les données peuvent devenir incohérentes lorsque des modifications apportées en un emplacement de l'antémémoire ne sont pas visibles depuis un autre emplacement de l'antémémoire. Finalement, la donnée se trouvant à l'adresse physique commune de la mémoire principale ne contiendra qu'une partie des modifications effectuées par la CPU (Central Processing Unit: unité centrale de traitement) ou par l'organe d'entrée/sortie aux
divers emplacements de l'antémémoire.
Dans la présente invention, le problème précédent est résolu en combinant deux stratégies distinctes de gestion
des homonymes.
La première stratégie consiste à créer des adresses homonymes telles que leurs bits inférieurs d'adresse soient
identique, modulo la taille de l'antémémoire (au minimum).
Cette stratégie est applicable à tous les programmes utilisateurs qui utilisent des adresses homonymes produites par le noyau ou se trouvant entièrement à l'intérieur du noyau. Les adresses homonymes de cette stratégie sont produites par des modifications apportées au noyau et sont transparentes pour programmes utilisateurs. Les adresses homonymes ainsi produites vont mapper le même bloc d'antémémoire se trouvant à l'intérieur d'une antémémoire à mappage direct (antémémoire associative à ensemble monovoie), ou à l'intérieur du même ensemble antémémoire
situé à l'intérieur d'une antémémoire associative multivoie.
On utilise alors une logique matérielle de détection des homonymes pour garantir la cohérence des données à l'intérieur de ce bloc d'antémémoire (ou de cet ensemble
antémémoire).
La seconde stratégie couvre celles des adresses homonymes du système d'exploitation, mais non des programmes utilisateurs, que l'on ne peut pas faire concorder par leurs bits d'adresse -inférieurs. Elles sont gérées par la MMU (Memory Management Unit: unité de gestion de la mémoire) utilisée par les stations de travail qui emploient l'adressage virtuel, en considérant que leurs pages sont des
pages devant ignorer l'antémémoire.
Plus précisément, la présente invention propose une station de travail dont le système d'exploitation utilise une antémémoire à réinscription à adressage virtuel, cette station de travail comportant un processeur central relié à une matrice des paramétrages de l'antémémoire, une matrice' des données de l'antémémoire, un tampon de réinscription, une unité de gestion de la mémoire, un registre d'adresse réelle, une mémoire principale avec des adresses physiques, un détecteur de présence dans l'antémémoire et une logique
de contrôle de la station de travail.
Selon l'invention, cette station de travail comprend des premiers moyens pour faire concorder par leurs bits d'adresse inférieurs toutes les adresses homonymes qui mappent la même adresse physique de la mémoire principale, à l'exception d'un ensemble prédéterminé d'adresses homonymes qui mappent des adresses physiques utilisées exclusivement par le système d'exploitation, de manière à pouvoir utiliser le même emplacement de la matrice des données de l'antémémoire, et des seconds moyens pour faire marquer comme étant des pages devant ignorer l'antémémoire les pages de l'ensemble prédéterminé d'adresses homonymes qui mappent des adresses physiques utilisées exclusivement par le
système d'exploitation.
Lesdits premiers moyens comprennent de préférence des moyens formant logique de détection des homonymes, pour détecter des adresses homonymes qui mappent des adresses physiques de la mémoire principale, et des moyens formant logique de contrôle sur détection des homonymes, permettant d'obtenir,' à partir de l'une des matrices des données de l'antémémoire que l'on a sélectionnée et de la mémoire principale, '-les données utilisées en cas de cycles de lecture et de cycles d'écriture o l'on n'a rien trouvé dans l'antémémoire, et de contrôler la mise à jour de la matrice des données de l'antémémoire en cas de cycles d'écriture o
l'on n'a rien trouvé dans l'antémémoire.
Lesdits seconds moyens comprennent de préférence des -moyens pour indiquer à l'unité de gestion de la mémoire qu'une page de la mémoire principale est une page devant ignorer l'antémémoire, ces moyens indicateurs comprenant un bit situé, dans l'unité de gestion mémoire, à l'intérieur d'un mot de qualification de page prévu pour chaque page, de sorte que lorsque ce bit est positionné pour une page tous les accès de données à cette page soient effectués directement vers la mémoire et depuis la mémoire,
contournant ainsi la matrice des données de l'antémémoire.
D'autres caractéristiques de l'invention apparaîtront à
la lecture de la' description détaillée ci-dessous, faite en
référence aux dessins sur lesquels: - la figure 1 est un schéma par blocs montrant les éléments principaux d'une station de travail utilisant des adresses virtuelles avec une antémémoire à réinscription, - la figure 2a est un diagramme schématique de la logique de vérification de présence dans l'antémémoire 25, - la figure 2b est un diagramme schématique d'un circuit de détection d'une violation de la protection de l'antémémoire, la figure 2c est un diagramme schématique d'un circuit de détection d'une violation de la protection de la MMU, - la figure 3 est un schéma par blocs détaillé montrant le cheminement des adresses utilisé par la logique de détection des homonymes de la présente invention, - la figure 4 (figures 4a et 4b) est un organigramme, correspondant à une réalisation sous forme d'une machine à états, de certains contrôles relatifs à l'adressage d'une antémémoire à réinscription à adressage virtuel, - la figure 5 est un schéma par blocs détaillé montrant le cheminement des données utilisé par la logique de détection des homonymes de la présente invention, - la figure 6 (figures 6a et 6b) est un organigramme, correspondant à une réalisation sous forme d'une machine à états, de certains contrôles relatifs au transfert de données en direction de l'antémémoire à réinscription à adressage virtuel et en provenance de celle-ci (états (a) à (o)), *- la figure 7a est un organigramme, correspondant à une réalisation sous forme d'une machine à états, du cheminement des données lorsqu'il existe une concordance des adresses réelles (états (q) à (u)), - la figure 7b est un organigramme, correspondant à une réalisation sous forme d'une machine à états, du cheminement des données lorsque, au cours d'un cycle de bus d'écriture CPU, il n'y a pas concordance des adresses réelles (états (q) à (y)), - la figure 7c est un organigramme, correspondant à une réalisation sous forme d'une machine à états, du cheminement des données lorsque, au cours d'un cycle de bus de lecture CPU, il n'y a pas concordance des adresses réelles (états (q) à (y)), - la figure 7d est un organigramme, correspondant à une
réalisation sous forme d'une machine à états, du cheminement..
des données lorsque la MMU indique une page devant ignorer l'antémémoire, - la figure 8 est un organigramme, correspondant à.une réalisation sous forme d'une machine à états, du contrôle
des cycles de bus de réinscription dans la mémoire, -
- la figure 9a est un chronogramme correspondant au meilleur cas de séquencement d'un cycle de-bus d'écriture CPU lorsque la MMU indique une page susceptible d'utiliser l'antémémoire, - la figure 9b est un chronogramme correspondant au meilleur cas de séquencement d'un cycle de bus d'écriture CPU lorsque la MMU indique une page devant ignorer l'antémémoire, - la figure 10a est- un chronogramme correspondant au meilleur cas de séquencement d'un cycle de bus de lecture CPU lorsque la. MMU indique une page susceptible d'utiliser l'antémémoire, - la figure lOb est un chronogramme correspondant au meilleur cas-de séquencement d'un cycle de bus de lecture CPU lorsque -la MMU indique une page devant ignorer 1l'antémémoire, - la figure la est un chronogramme du cycle de bus mémoire pour l'exécution d'un cycle de lecture de bloc, - la figure llb est un chronogramme du cycle de bus mémoire pour l'exécution d'un cycle de réinscription, - la figure 11c est un chronogramme du 'cycle du bus mémoire pour l'exécution d'une écriture sur une page devant ignorer l'antémémoire, et les figures 12a à 12d sont des listages en langage C des instructions correspondantes du module de programme devant être ajouté au noyau du système d'exploitation La figure 1 montre les blocs fonctionnels d'une station de travail typique utilisant des adresses virtuelles, et
dans laquelle on a mis en oeuvre la présente invention.
Plus précisément, cette station de travail comporte un microprocesseur ou unité centrale de traitement 11, une matrice d'antémémoire de données 19, une matrice de paramétrages d'antémémoire 23, un comparateur 25 de vérification de présence dans l'antémémoire, une MMU 27, une mémoire principale 31, un tampon de réinscription 39 et une logique de contrôle de la station de travail 40. En option, ces stations de travail peuvent également comprendre un registre d'identification de contexte 32, une logique de purge de l'antémémoire 33, une logique DVMA (Direct Virtual Memory Access: accès direct à la mémoire virtuelle) 35 et
un multiplexeur 37.
Outre les éléments précités, il est également nécessaire, pour mettre en oeuvre la présente invention, d'avoir un multiplexeur 45, une logique de détection des homonymes 47, une logique de contrôle sur détection des homonymes 49 et un registre d!adresse réelle 51. Les éléments précités prennent en compte les adresses homonymes en évitant les problèmes inhérents aux configurations de l'art antérieur utilisant
une antémémoire à réinscription à adressage virtuel.
Chacun des éléments précités de la station de travail va maintenant être décrit, avec notamment les modifications qui doivent être apportées au noyau du système d'exploitation, en explicitant tout particulièrement les éléments propres à
la présente invention.
Description des éléments indispensables
à une station de travail La CPU 11 déclenche des cycles de bus afin d'adresser des instructions et des données dans la mémoire (après traduction d'adresse) et, éventuellement, dans d'autres organes du système. L'adresse CPU proprement dite est une adresse virtuelle ayant une taille de A bits, qui identifie de façon univoque des octets d'instruction ou de données dans un contexte virtuel. Le cycle de bus peut êtré caractérisé par un ou plusieurs champs de contrôle
permettant d'identifier de façon univoque le cycle de bus.
En particulier, on a besoin d'un indicateur lecture/écriture ainsi qu'un champ de "type". Ce champ identifie l'espace adressable de données et d'instructions de la mémoire ainsi que la priorité d'accès (c'est-à-dire une priorité d'accès "superviseur" ou "utilisateur") du cycle de bus. Comme CPU de station de travail à adressage virtuel pouvant supporter un système d'exploitation multi-utilisateurs, on peut
utiliser le MC 68020.
Un autre élément indispensable d'une station de travail à adressage virtuel avec antémémoire à réinscription telle que celle illustrée figure 1 est la matrice des données 19 de l'antémémoire à-adressage virtuel, qui est organisée sous forme d'une matrice de 2N blocs de données contenant chacun 2M octets. Les 2M octets de chaque bloc sont identifiés de manière univoque par les M bits d'adresse inférieurs. Chacun des 2N blocs est adressé de façon univoque, en tant qu'élément de la matrice, par les N bits d'adresse inférieurs immédiatement précédents. Du fait de l'adressage virtuel de l'antémémoire, les -(N+M) bits qui adressent les octets de l'antémémoire proviennent d'un domaine adressable virtuel de (A+ C) bits, les C bits-étant des bits de contexte provenant-d'un registre d'identification de contexte 32, registre optionnel qui sera décrit plus bas. Les (M+N) bits comprennent généralement les P bits de page non traduite, auxquels s'ajoutent des bits virtuels provenant des (A+C-P) bits définissant l'adresse virtuelle de page. -, La matrice des données 19 de l'antémémoire à adressage virtuel que l'on décrit ici est une antémémoire "à mappage
direct", ou antémémoire "associative à ensemble monovoie".
Bien que cette organisation d'antémémoire soit utilisée pour illustrer la présente invention, cela ne veut pas dire que la portée de l'invention en est réduite, et l'on pourrait très bien mettre en oeuvre la présente invention avec des
antémémoires associatives multivoies.
Un autre élément nécessaire illustré figure 1 est la
matrice des paramétrages 23 de l'antémémoire à adressage.
virtuel, qui possède un élément de matrice des paramétrages pour chaque bloc de données se trouvant dans la matrice des données 19 de l'antémémoire. La matrice des paramétrages contient donc 2N éléments, chacun formé d'un bit de validation V, d'un bit de modification M, de deux bits de protection P constitués d'un bit de protection superviseur et d'un bit d'autorisation d'écriture, ainsi que d'un champ d'adresse virtuelle VA (et optionnellement de contexte CX), comme illustré figure 3. Le contenu du champ d'adresse virtuelle, avec les bits inférieurs de l'adresse qui sont utilisés pour adresser la matrice des données de l'antémémoire et celle des paramétrages, identifient de façon univoque le bloc d'antémémoire à l'intérieur du domaine d'adressage virtuel de (A+C) bits. Pour cela, le champ d'adresse virtuelle de paramétrage doit contenir
((A+C)-(M+N)) bits d'adresse virtuelle.
Une logique 25 de vérification de présence dans l'antémémoire compare les adresses virtuelles auxquelles on veut accéder au contenu du champ d'adresse du paramétrage de l'antémémoire à adressage virtuel. A l'intérieur de l'adresse à laquelle on veut accéder, les M bits inférieurs adressent des octets dans un bloc, les N bits inférieurs immédiatement précédents adressent un bloc à l'intérieur de l'antémémoire, et les ((A+C)-(M+N)) bits restants servent à la comparaison avec le champ d'adresse virtuelle du paramétrage, qui est effectuée par la logique de
vérification de présence dans l'antémémoire.
La logique de vérification de présence dans l'antémémoire doit, pour les systèmes ayant un système d'exploitation partagé, identifier les accès à des instructions et des données de l'utilisateur, et à des instructions et des données du superviseur. La définition d'une "présence dans l'antémémoire" qui satisfasse à cette-exigence est illustrée sur la figure 2a, o on l'a représentée sous la forme de comparateurs 20, d'une porte ET 22, d'une porte OU 24 et
d'une porte ET 26.
La MMU 27, qui traduit les adresses du domaine virtuel en une adresse physique, est un autre élément nécessaire. la MMU 27 est organisée sur la base de pages ayant une taille de 2P octets, qui sont elles-mêmes regroupées en segments ayant une taille de 2S pages. L'adressage à l'intérieur d'une page nécessite P bits. Ces P bits sont des bits d'adresse physique qui ne nécessitent aucune traduction. Le rôle de la MMU 27 est de traduire les (A+C-P) ou (A-P) bits d'adresse virtuelle de page en une adresse physique de page de MM bits. L'adresse physique composite est alors formée de
MM bits d'adresse de page avec P bits-par page.
C'est également dans la MMU 27 que l'on contrôle les protections, c'est-àdire o l'on compare la priorité du
cycle de bus de l'accès à la protection affectée à la page.
Pour illustrer ceci, il existe deux types de protections que l'on peut affecter à une page, à savoir une qualification accès superviseur/accès utilisateur et une qualification protection contre l'écriture/écriture libre. Bien que la présente invention ne soit pas limitée à de tels types de protection, si l'on prend cet exemple de protection de page, une "violation de protection" serait commise si un cycle de bus de priorité "utilisateur" voulait accéder à une page ayant une protection "superviseur", ou bien si un cycle de bus "écriture" voulait accéder à une page ayant une
qualification "protection contre l'écriture".
La mise en oeuvre du contrôle de protection par la MMU est illustrée figure 2c, o on l'a représentée sous la forme d'un inverseur 28, de portes ET 30a et 30b, d'une porte OU 34 et d'une porte ET 36. En outre, avec une antémémoire à réinscription à adressage virtuel, on peut étendre ce
2621408-
concept de vérification de protection afin de n'utiliser l'antémémoire que pour des cycles de CPU qui n'accèdent pas à la MMU. Une telle logique de protection de la seule antémémoire est illustrée figure 2b, o on l'a représentée sous la forme d'un inverseur 42, de portes ET 44a et 44b,
d'une porte OU 46 et d'une porte ET 48.
On a également représenté sur la figure 1 la mémoire principale, qui est adressable à l'intérieur du domaine des adresses physiques; le contrôle de l'accès à la mémoire principale est effectué par la logique 40 de contrôle de la
station de travail.
Le tampon de réinscription 39 est un registre contenant un bloc de données d'antémémoire chargé depuis la matrice des données 19 de l'antémémoire. Le tampon de réinscription 39 est chargé chaque fois que l'on doit déplacer un bloc existant de l'antémémoire. Ceci peut être dé au fait que l'on a besoin de mettre à jour le bloc de l'antémémoire par un nouveau contenu, ou bien parce que le bloc doit être purgé. Dans l'un ou l'autre cas, dans une antémémoire à réinscription l'état du paramétrage de l'antémémoire pour le bloc d'antémémoire existant détermine si ce bloc doit être ou non réinscrit dans la mémoire. Si le paramétrage indique, de la manière dont on le définira plus bas, que le bloc est valable et modifié, le contenu du bloc doit alors être réinscrit dans la mémoire 31 lorsqu'on déplace le bloc d'antémémoire. Le tampon de réécriture 39 conserve temporairement ces données avant qu'elles ne soient
inscrites dans la mémoire.
La logique 40 de contrôle de la station de travail contrôle le fonctionnement général des éléments de la station de travail illustrée figure 1. Dans le mode de réalisation préféré, la logique de contrôle 40 est mise en oeuvre sous forme de plusieurs machines à états qui sont illustrées aux figures 4 et 6 à 8, et qui seront décrites
plus en détail ci-dessous à propos de la description de la
logique de contrôle sur détection des homonymes 40 qui, dans le mode de réalisation préféré, est intégrée à la logique de
contrôle de la station de travail.
il
Description des éléments optionnels
de la station de travail Le registre d'identification de contexte 32 est un registre d'adresse externe optionnel qui contient des bits supplémentaires d'adresse virtuelle permettant d'identifier un processus ou contexte virtuel. Ce registre, qui contient C bits, identifie un total de 2C processus d'utilisateur actifs; le domaine adressable virtuel total a une taille de
2(A+C)
Un élément important de ce domaine adressable virtuel de 2(A+C) bits est l'espace adressable occupé par le système d'exploitation. Le système d'exploitation est commun à tous les processus utilisateurs, et il est donc affecté à un domaine adressable commun à tous les processus d'utilisateur actifs. Ainsi, les C bits de contexte sont sans signification pour qualifier les adresses de pages se trouvant à l'intérieur-du système d'exploitation. Mais on suppose que le système d'exploitation s'étend à l'intérieur d'une région commune, exclusive, située au sommet des 2A octets du domaine adressable virtuel de chaque contexte actif. Aucune page utilisateur ne peut se trouver dans cette région. Ainsi, les adresses des pages du système d'exploitation sont identiques pour deux processus utilisateurs distincts, tandis que les pages utilisateur des deux processus sont distinctes. Toutes les pages se trouvant dans le système d'exploitation sont marquées avec une
protection "superviseur".
Les stations de travail du type dans lesquelles on peut -30 utiliser la présente-invention peuvent comprendre également une logique de purge de l'antémémoire 33 permettant d'éliminer des blocs déterminés de l'antémémoire virtuelle lorsque l'on doit réaffecter les adresses
virtuelles. On pourra trouver une description complète-d'un
mode de mise -en oeuvre -d'une logique de purge de l'antémémoire dans la demande intitulée Système de réaffectation des adresses et de purge des blocs d'antémémoire pour station de travail à antémémoire à adressage virtuel et à réinscription, au nom de la Demanderesse, bénéficiant de la même date de priorité que la
présente demande.
La logique de purge de l'antémémoire 33 n'est décrite ici que pour indiquer son rôle en tant qu'élément d'un système d'antémémoire à réinscription à adressage virtuel. S'il faut réassigner une tranche d'adresses (l'adresse d'une page virtuelle, par exemple), il faut éliminer ou "purger" de l'antémémoire toutes les occurences des adresses se trouvant
à l'intérieur de cette tranche avant de pouvoir effectuer-
l'affectation des nouvelles adresses. Un bloc d'antémémoire est "purgé" en invalidant le bit de validation se trouvant dans ses paramétrages, et en réinscrivant le bloc dans la
mémoire si le bloc a été modifié.
Outre la CPU 11 considérée en tant que source de cycles de bus, la station de travail peut comprendre un ou plusieurs organes externes d'entrée/sortie (E/S) tels que par exemple la logique DVMA 35 d'accès direct en mémoire virtuelle. Ces organes externes d'entrée/sortie sont capables de produire des cycles de bus qui viennent doubler la CPU pour l'accès à un ou plusieurs "types" de domaines à adressage virtuel. On appelera "adresse d'accès" l'adresse virtuelle provenant soit de la CPU 11 soit de la logique DVMA 35, ainsi que l'adresse se trouvant dans le registre
d'identification de contexte 32.
Un autre élément optionnel est le tampon de bus de données 37 qui, dans le mode de réalisation préféré,- est réalisé sous la forme de deux tampons permettant de contrôler le flux de données entre un bus sur 32 bits et un bus sur 64 bits. On a besoin de tels tampons lorsque le bus de données de la CPU est sur 32 bits et que le bus de données de la matrice de données de l'antémémoire est sur 64 bits.
Description des éléments propres
à la station de travail de la présente invention Comme indiqué plus haut, dans la présente invention on utilise deux stratégies distinctes pour résoudre les problèmes de cohérence des données consécutifs à- des adresses homonymes. Les deux stratégies nécessitent l'interaction dusystème d'exploitation avec un matériel
d'antémémoire spécial afin d'obtenir des données cohérentes.
La première stratégie nécessite que toutes-les adresses homonymes qui mappent les mêmes données concordent sur leurs bits d'adresse inférieurs afin d'être -sûr qu'elles utiliseront le même emplacement d'antémémoire si la donnée doit utiliser l'antémémoire. La présente invention utilise une logique de détection des homonymes 47, qui est un comparateur d'adresses réelles, afin de détecter les adresses homonymes sur des accès mémoire o l'on ne trouve rieh dans l'antémémoire et de contrôler la mise à jour des données de l'antémémoire, de manière à être sûr que toutes les adresses homonymes pointent sur des données cohérentes
situées au même emplacement de l'antémémoire.
Les modules du noyau effectuant les opérations sur les adresses et permettant de mettre en oeuvre cette première stratégie forcent les adresses homonymes à concorder par leurs bits d'adresse inférieurs,- de manière à garantir que -des adresses homonymes utiliseront le même emplacement de l'antémémoire. Si l'antémémoire a une taille de 2M blocs de données de 2N octets chacun, ce sont alors au moins les (N+M) bits inférieurs des adresses homonymes qui doivent concorder. Ceci s'applique aussi bien à des adresses homonymes à l'intérieur d'un même processus qu'à des adresses homonymes entre processus différents. Tant que cette condition est vérifiée, dans les antémémoires à mappage direct les adresses homonymes mapperont le même bloc d'antémémoire, et dans les antémémoires associatives multivoiès en ensembles antémémoires les adresses homonymes mapperont le même ensemble antémémoire. La seconde stratégie empêche que des données n'utilisent l'antémémoire, grâce à un bit "ignorer l'antémémoire" qui est défini dans la MMU 27 pour chaque page. En d'autres termes, chaque qualificateur de page possède, dans la MMU 27, un bit "ignorer l'antémémoire" qui contrôle si l'on peut ou non inscrire dans l'antémémoire des instructions et des données à partir de cette page. Si, pour une page donnée, ce bit de contrôle est positionné, les accès de données à cette page sont alors tous effectués directement vers ou depuis la mémoire principale, en contournant l'antémémoire. En contournant l'antémémoire, on remédie au problème de cohérence des
données dans l'antémémoire virtuelle.
Comme un adressage homonyme est possible, si une page est marquée, dans l'une des rubriques de page de la MMU, comme devant ignorer l'antémémoire, elle doit alors être marquée dans toutes les rubriques de page homonymescomme devant ignorer l'antémémoire. Sinon, on ne peut garantir la
cohérence des données.
La production d'adresses homonymes par les processus utilisateurs est contrôlée par le noyau, de sorte que tous les processus d'utilisateur utilisent la première stratégie pour assurer la cohérence des données entre adresses homonymes. Certaines adresses du système d'exploitation ne peuvent cependant être modifiées de manière à remplir les conditions d'adressage de la première stratégie. Ces adresses homonymes du système sont alors prises en compte par la seconde stratégie, qui est l'affectation à des pages
devant ignorer l'antémémoire.
On va donner ci-dessous une description fonctionnelle de
ce qui est nécessaire pour obtenir, par utilisation d'une combinaison des deux stratégies, la cohérence des données dans une antémémoire à réinscription à adressage-virtuel et
à mappage direct.
Si un cycle d'accès mémoire de la CPU 11 ou du DVMA 35 ne trouve rien dans l'antémémoire, l'adresse virtuelle d'accès sera traduite par la MMU. La traduction par la MMU déterminera si la page à laquelle on accède est une page devant ignorer l'antémémoire et s'il y a ou non violation de la protection par l'accès. Si l'accès est valable et correspond à une page susceptible d'utiliser l'antémémoire, on va alors mettre à jour l'antémémoire avec le bloc
d'antémémoire correspondant à l'adresse d'accès.
Le contenu courant de l'antémémoire à l'emplacement correspondant à l'adresse d'accès doit être examiné afin de détecter une éventuelle adresse homonyme. Si le bloc d'antémémoire courant est valable et modifié, l'adresse traduite du bloc d'antémémoire doit être alors comparée à l'adresse d'accès traduite afin de déterminer la source de
la donnée valable permettant de mettre à jour l'antémémoire.
La comparaison d'adresse réelle exécutée par la logique de détection des homonymes 47 utilise comme entrées l'adresse d'accès traduite du cycle de bus, provenant du registre d'adresse réelle 51, et l'adresse d'antémémoire
traduite, provenant de la MMU 27.
Si le bloc d'antémémoire courant est valable et qu'il y a eu comparaison réussie des adresses traduites, l'adresse d'accès et l'adresse du bloc d'antémémoire sont alors homonymes. Si le bloc d'antémémoire a été modifié, la donnée d'antémémoire courante est la donnée la plus récente, et la donnée de la mémoire principale se trouvant à cette adresse
est alors périmée.
Si les adresses traduites concordent mais que le bloc d'antémémoire n'a pas été-modifié, la donnée d'antémémoire ancienne et la donnée en mémoire sont identiques, et l'une ou l'autre peuvent être utilisées comme source de mise à
jour de l'antémémoire.
Une fois que l'on a déterminé la donnée valable du bloc, on peut exécuter le cycle d'accès. Pour les cycles de lecture, le cycle de bus renvoie une donnée, directement depuis la source ou bien depuis l'antémémoire après mise à jour de l'antémémoire en fonction de la mise en oeuvre particulière. Pour des cycles d'écriture, la donnée de l'accès doit être inscrite dans l'antémémoire. L'étendue des mises à jour de l'antémémoire et l'alignement des données de l'antémémoire dépendent tous deux de la mise en oeuvre particulière. Pour garantir la cohérence des données, toute inscription dans une page nécessite que toutes les références & cette page (en lecture ou en écriture) acceptent les contraintes ci- dessus. Aucune condition n'est posée pour un adressage
homonyme destiné uniquement à la lecture de pages.
Le mode de réalisation préféré du cheminement des adresses incorporant la logique de détection des homonymes 47 est illustrée figure 3. Comme illustré sur cette figure 3, le cheminement des adresses comporte les éléments fondamentaux permettant, avec une antémémoire à réinscription à adressage virtuel, de prendre en compte le contrôle des adresses. Pour prendre en compte des adresses homonymes, on a également besoin d'un registre d'adresse virtuelle VAR 52 pour les adresses virtuelles CX et VA et un bit V de validité du bloc d'antémémoire, d'un multiplexeur 45 qui multiplexe l'adresse virtuelle avec le registre d'adresse virtuelle, d'un registre d'adresse réelle 51, d'une logique de détection des homonymes 47, d'une porte ET 53 (avec en entrée le bit de validité provenant du registre d'adresse virtuelle et le signal de sortie de la logique de détection des homonymes), et d'une bascule bistable de concordance des adresses réelles 55, qui sera positionné
lorsque l'on détectera une concordance des adresses réelles.
Le cheminement des données entre l'antémémoire 19 et la mémoire principale 31 passe par deux bus 56 et 58 sur 64 bits. Le cheminement des données CPU 60 est sur 32 bits, représentés par D(31:0). Lors des cycles de bus de lecture, le bit A(2) d'adressage de l'antémémoire sélectionne celui des deux tampons 37 de 32 bits qui a le droit d'appliquer les données provenant du bus de données d'antémémoire 56 sur 64 bits sur le bus de données CPU 60 sur 32 bits. La logique de détection des homonymes 49 contrôle la source des données pour les cycles de lecture o l'on ne trouve rien dans l'antémémoire (ou la mémoire) et contrôle si l'antémémoire est ou non mise à jour par des données mémoire lors des cycles d'écriture o l'on ne trouve rien dans l'antémémoire, comme cela est décrit aux figures 6 et 7 pour la machine à
états des données.
Sur les figures 3 et 5, pour ne pas alourdir inutilement les figures, on n'a pas représenté toutes les lignes de contrôle. Cependant, les lignes de:contrôle nécessaires à un fonctionnement correct de la présente invention peuvent être déduites de l'organigramme des machines à états représentéess
aux figures 4 et 6 à 8.
Sur les organigrammes, on a utilisé les abréviations suivantes: CX Contexte AV Adresse virtuelle
AR Adresse réelle.
RAV Registre d'adresse virtuelle RAR Registre d'adresse réelle 51 MEM. Mémoire (principale) AMM Antémémoire REG. Registre DONN. Donnée ADR. Adresse ECR. Ecriture REINSC. Réinscription LECT. Lecture CONC. Concordance PARAM. Paramétrages (de l'antémémoire) MUX Multiplexeur 45 SEL. Sélection (du multiplexeur) CK xxx Séquencer xxx (lui appliquer son signal d'horloge Clock) xxx Délivrer, appliquer le signal xxx * xxx Supprimer le signal xxx OE xxx Autorisation de sortie (Output
Enable) pour xxx -
STROBE xxx Echantillonnage (Strobe) de xxx A/R Accusé de réception Trouvé/rien trouvé ? La logique de détection 25 a-t-elle détecté ou non la présence de la donnée dans l'antémémoire ? (fig.2a) Présence AMM ? La logique de détection 25 a-t-elle détecté ou non la présence de la donnée dans l'antémémoire ? (fig.2a) Violation La logique de contrôle 40 a-telle protection AAM ? détecté une violation de la protection antémémoire (fig.2b) Mémoire occupée ? Le signal "mémoire occupée" a-t-il été appliqué ? Violation La logique de contrôle 40 a-t-elle protection MMU ? détecté une violation de la protection MMU (fig. 2c)
Strobe adr. mém. Appliquer le signal d'échantil-
lonnage d'adresse de la mémoire 31 A/R adr. mém. ? La mémoire 31 a-t-elle délivré un signal d'accusé de réception ? Strobe donn. mém. 0 ? Le signal d'échantillonnage n O des données de la mémoire a-t-il été délivré ? A/R donn. mém. 0 ? Le signal d'accusé de réception n 0O des données de la mémoire a-t-il été délivré ? Strobe donn. mém. 1 ? Le signal d'échantillonnage n l des données de la mémoire a-t-il été délivré ? A/R donn. mém. 1 ? Le signal d'accusé de réception n l des données de la mémoire a-t-il été délivré ? Clk tampon réins. Séquencer le tampon de réinscription 39 Conc. AR ? Une concordance des adresses réelles a-t-elle été détectée (bistable 55) Page devant La logique de contrôle 40 a-t-elle éviter AMM ? détecté dans la MMU 27 une page devant éviter l'antémémoire ? Cycle lecture CPU ? La CPU est-elle dans un cycle de lecture ? Clk reg. donn. Séquencer le registre de données 61 Donn. réinscr. La logique de contrôle 40 a-t-elle val. et modif. ? détecté que le bit de validité (V) et le bit de modification (M) sont positionnés ? Ecr. dans page La logique de contrôle 40 a-t-elle devant éviter AMM détecté l'écriture sur une page devant éviter l'antémémoire ? Lancer écr. en La logique-de contrôle 40 a-t-elle évitant AAM délivré un signal de lancement d'une écriture avec évitement de l'antémémoire ? Lancer cycle La logique de contrôle 40 a-t-elle réinscr. ? délivré un signal de lancement d'un cycle de réinscription ? Des abréviations similaires sont utilisées pour les
chronogrammes des figures 9 à 11.
La machine à états des adresses illustrée aux figures 4a et 4b définit certains des contrôles relatifs à la partie de gestion des adresses de l'antémémoire. On y incorpore la présente invention par le séquencement de la bascule bistable de concordance des adresses réelles 55, à l'état (o). On inscrit comme valables les paramétrages d'antémémoire 23 au cours de l'état (w), suite à un transfert réussi, en provenance de la mémoire 31, de toutes
les données du bloc.
La machine à états des données illustrée aux figures 6a et 6b et 7a à 7d définit certains des contrôles relatifs à la partie de transfert de données de l'antémémoire. Comme on l'a illustré, après l'état (g) on effectue un test d'inscription sur-une page devant ignorer l'antémémoire; la gestion de cette inscription dans la mémoire est également décrite à la suite de l'état (i.dw) de la machine à états des données. Après l'état (o) on effectue-un test d'accès à -une page devant ignorer l'antémémoire (cette fois-ci, pour des données à lire). Le contrôle de la lecture devant ignorer l'antémémoire suit le même cheminement que le cheminement de concordance- des adresses non-réelles, jusqu'aux états (q.nr) et (u.nr) . A cet endroit, un test des pages devant ignorer l'antémémoire inhibe les mises à jour
des antémémoires aux états (s.nr) et (w.nr).
La machine à états de réinscription illustrée à la figure 8 définit le contrôle du cycle de.bus de réinscription dans la mémoire. Ce cycle peut être exécuté parallèlement aux accès CPU à l'antémémoire, car les contrôles de réinscription et le cheminement des données sont tous deux indépendants des contrôles et du cheminement des données d'accès à l'antémémoire. Comme décrit plus bas, le signal "mémoire occupée" provoque l'attente de la machine à états des adresses et de la machine à états des données jusqu'à
achèvement d'un cycle précédent de réinscription.
Le chronogramme d'écriture lorsque l'on n'a rien trouvé dans l'antémémoire, illustré figure 9a, définit le séquencement général d'un cycle de bus d'écriture CPU dans une page de la mémoire susceptible d'utiliser l'antémémoire mais pour laquelle on ne trouve rien dans l'antémémoire. La vérification de présence dans l'antémémoire et de protection
de l'antémémoire a lieu au cycle (c) de ce diagramme.
Une partie de la séquence de gestion du cas o l'on n'a rien trouvé dans l'antémémoire comprend le chargement dans le tampon de réinscription 39 du bloc d'antémémoire courant que l'on doit remplacer, aux cycles (i) et (m). L'adresse traduite du bloc d'antémémoire courant est également chargée dans le registre d'adresse réelle 51, au cycle (o). Le registre à verrouillage de concordance des adresses réelles
(bascule bistable 55) est également séquencé au cycle' (o).
Si le bloc d'antémémoire courant a été rendu à la fois valable et modifié par un cycle d'écriture CPU (ou DVMA) précédent, ce bloc d'antémémoire sera alors réinscrit dans la mémoire 31 au moyen d'un cycle de bus de réinscription, décrit à la fois dans le séquencement du bus de données de la mémoire et dans la machine à états de réinscription,
respectivement aux figures llb et 8.
Un registre à verrouillage de concordance des adresses réelles (bascule bistable 55) qui est actif signifie qu'il y a concordance des adresses homonymes. S'il n'y a pas concordance des adresses homonymes, on fusionne alors les données CPU à écrire avec des blocs de données renvoyés de la mémoire au cours du premier transfert de données d'un cycle de bus mémoire de lecture de bloc. Pendant les cycles (q) à (u), -le signal d'activation de sortie d'écriture CPU qui contrôle les tampons 37 ne sera active que pour ceux des octets devant être inscrit par la CPU, tandis que le signal d'activation de sortie du registre de données qui contrôle le registre de donnée 61 sera actif pour tous les autres octets. Au cours du second transfert de données, au cycle (w), le signal d'activation de sortie du registre de données
sera actif pour tous les octets.
S'il y a concordance des adresses homonymes, les données CPU sont inscrites dans l'antémémoire des données, à l'état
(s), et l'on ignore les donhées provenant de la mémoire 31.
Le séquencement de l'écriture dans une page devant ignorer l'antémémoire, illustré figure 9b, définit le séquencement général d'un cycle de bus d'écriture CPU dans la mémoire pour des accès à une page devant ignorer l'antémémoire. La vérification de présence dans de l'antémémoire, qui a lieu au cycle (c), indiquera toujours
que l'on n'a rien trouvé (pas de présence).
Pour l'inscription dans une page susceptible d'utiliser *l'antémémoire, l'écriture dans une page devant ignorer l'antémémoire diffère-du cas o l'on n'a rien trouvé dans l'antémémoire en ce que l'antémémoire n'est pas mise à jour par des données CPU ou des données de la mémoire. La mise en oeuvre utilise un cycle de.bus mémoire particulier, appelé "cycle d'écriture dans une page devant ignorer l'antémémoire" (figure 11c), et qui permet de mettre à jour directement la mémoire. On notera que - le registre à verrouillage de concordance des adresses réelles-est, dans
ce cas, sans signification.
Le chronogramme de lecture lorsque l'on n'a rien trouvé dans l'antémémoire, -illustré 'figure 10a, définit le séquencement'général d'un cycle de bus de lecture CPU dans une page de la'mémoire susceptible d'utiliser l'antémémoire mais pour laquelle on ne: trouve rien.dans l'antémémoire. La vérification de présence dans l'antémémoire et de protection
de l'antémémoire a lieu au cycle (c) de ce diagramme.
Une partie de la séquence de gestion du cas o l'on n'a rien trouvé dans l'antémémoire comprend le chargement dans le tampon de réinscription 39 du bloc d'antémémoire courant que l'on doit remplacer, aux cycles (i) et (m). L'adresse traduite du bloc d'antémémoire courant est également chargée dans le registre d'adresse réelle 51, au cycle (o). Le registre à verrouillage de concordance des adresses réelles
(bascule bistable 55) est également séquencé au cycle (o).
Si le bloc d'antémémoire courant a été rendu à. la fois valable et modifié par un cycle d'écriture CPU (ou DVMA) précédent, ce bloc d'antémémoire sera alors réinscrit dans la mémoire 31 au moyen d'un cycle de bus de réinscription, décrit à la fois dans le séquencement du bus de données de la mémoire et dans la machine à états de réinscription,
respectivement aux figures llb et 8.
Un registre à verrouillage de concordance des adresses réelles (bascule bistable 55) qui est actif signifie qu'il y a concordance des adresses homonymes. S'il n'y a pas concordance des adresses homonymes, on lit la donnée en direction de la CPU en détournant les données vers la CPU par l'intermédiaire des tampons 37 qui sont activés par le signal de contrôle "activation sortie lecture CPU", qui est actif aux cycles (q) à (u), et en mettant simultanément à jour l'antémémoire, au cycle (s). La mémoire est conçue pour renvoyer toujours la "donnée manquante" lors du premier transfert sur 64 bits d'un cycle de bus mémoire de lecture
de bloc, et les autres 64 bits lors du transfert suivant.
Après avoir renvoyé la donnée du cycle de bus de lecture CPU, la CPU peut exécuter des cycles internes pendant que l'on met à jour l'antémémoire avec le second transfert de
données en provenance de la mémoire.
S'il y a concordance des adresses homonymes, on lit directement la donnée depuis l'antémémoire 19 vers la CPU
11, et l'on ignore la donnée provenant de la mémoire 31.
Le séquencement de la lecture d'une page devant ignorer l'antémémoire, illustré figure 10b, définit le séquencement général d'un cycle de bus de lecture CPU dans la mémoire pour des accès à une page devant ignorer l'antémémoire. La vérification de présence dans de l'antémémoire, qui a lieu au cycle (c), indiquera toujours que l'on n'a rien trouvé
(pas de présence).
Pour la lecture d'une page susceptible d'utiliser l'antémémoire, la lecture d'une page devant ignorer l'antémémoire diffère du cas o l'on n'a rien trouvé dans l'antémémoire en ce que l'antémémoire n'est pas mise à jour par des données de la mémoire. La mise en oeuvre utilise le même cycle de bus mémoire de lecture de bloc que dans le cas o l'on n'a rien trouvé dans l'antémémoire (voir ci-dessous le séquencement du bus de données de la mémoire). On notera que le registre à verrouillage de concordance des adresses réelles (bascule bistable 55) est, dans ce cas, sans
signification.
Le cadencement du bus de données de la mémoire illustré figures lia à l1c montre le séquencement des cycles de bus de lecture de bloc, de réinscription et d'inscription dans une page devant ignorer l'antémémoire. Comme la taille d'un bloc d'antémémoire est de 128 bits, chaque mise à jour d'un
bloc d'antémémoire nécessite deux transferts de données.
Comme indiqué plus haut, les 64 bits formant la donnée adressée par la CPU 11 sont, pour les cycles de bus de lecture de bloc, toujours renvoyés lors du premier transfert. Un signal de contrôle "mémoire occupée", actif au cours du cycle de réinscription, est utilisé pour inhiber le début du cycle sans utilisation de l'antémémoire suivant jusqu'à ce que le cycle de réinscription précédent puisse se terminer. Lors des cycles de.bus d'inscription dans une page devant ignorer l'antémémoire, le champ de marquage d'octet sur huit bits, envoyé au cours de la phase de transfert d'adresse du cycle, définit celui des huit octets de donnée envoyés pendant la phase de donnée qui doit être mise à jour dans la
mémoire 32.
Outre le matériel que l'on vient décrire, il y lieu de modifier le noyau du système d'exploitation,de -deux façons essentielles pour pouvoir prendre en compte les adresses homonymes: 1) les utilitaires du système d'exploitation qui produisent des adresses utilisateur homonymes doivent être modifiés afin de garantir que les adresses homonymes obéissent à la règle suivant laquelle elles doivent concorder au moins par leur (N+M) bits
d'adresse inférieurs.
2) les cas d'adresses homonymes internes au système d'exploitation et que l'on ne peut pas faire obéir à la règle. qui impose la concordance des (N+ M) bits inférieurs, doivent être affectées à des pages devant
ignorer l'antémémoire.
Les modifications du noyau nécessaires pour la prise en compte de l'adressage homonyme par le système d'exploitation Unix sont indiqués sur les figures 12a à 12d, qui sont des listages en langage C des instructions correspondantes du module de programme devant être ajouté au noyau du système d'exploitation.

Claims (11)

REVENDICATIONS
1. Une station de travail dont le système d'exploitation utilise une antémémoire à réinscription à adressage virtuel, cette station de travail comportant un processeur central (11) relié à une matrice des paramétrages de l'antémémoire (23), une matrice des données de l'antémémoire (19), un tampon de réinscription (39), une unité de gestion de la mémoire (27), un registre d'adresse réelle (51), une mémoire principale (31) avec des adresses physiques, un détecteur de présence dans l'antémémoire (25) et une logique de contrôle de la station de travail (40), caractérisée en ce qu'elle comprend: a) des premiers moyens (47,53,55,49) pour faire concorder par leurs bits d'adresse inférieurs toutes les adresses homonymes qui mappent la même adresse physique de la mémoire principale, à l'exception d'un ensemble prédéterminé d'adresses homonymes qui mappent des adresses physiques utilisées exclusivement par le système d'exploitation, de manière à pouvoir utiliser le même emplacement de la matrice des données de l'antémémoire, et b) des seconds moyens pour faire marquer comme étant des pages devant ignorer l'antémémoire les pages de l'ensemble prédéterminé d'adresses homonymes qui mappent des adresses physiques utilisées exclusivement par le système d'exploitation.
2. La station de travail de la revendication 1, dans lequel lesdits premiers moyens comprennent: a) des moyens formant logique de détection des homonymes (47,53,55), pour détecter des adresses homonymes qui mappent des adresses physiques de la mémoire principale, et b) des moyens formant logique de contrôle sur détection des homonymes (49) , permettant d'obtenir, à partir de l'une des matrices des données de l'antémémoire que l'on a sélectionnée et de la mémoire principale, les données utilisées en cas de cycles de lecture et de cycles d'écriture o- l'on n'a rien trouvé dans l'antémémoire, et de contrôler la mise à jour de la matrice des données de l'antémémoire en cas de cycles d'écriture o l'on n'a rien
trouvé dans l'antémémoire.
3. La station de travail de la revendication 2, dans laquelle les moyens formant logique de détection des homonymes (47,53,55) comprennent: a) un comparateur (47) relié à l'unité de gestion de la mémoire (27) et au registre d'adresse réelle (51), ce comparateur produisant un "un" logique lorsque l'adresse mémorisée dans le registre d'adresse réelle concorde avec une adresse d'antémémoire prédéterminée. se trouvant dans l'unité de gestion de la mémoire, b) une porte ET (53) ayant l'une de ses entrées reliée à la sortie de ce comparateur et une seconde entrée recevant un bit de validité d'antémémoire se trouvant à l'intérieur d'un registre d'adresse virtuelle (51), ce registre d'adresse virtuelle mémorisant une adresse virtuelle prédéterminée chargée à partir de la matrice des paramétrages de l'antémémoire, et c) une bascule bistable (55) reliée à la sortie de cette porte ET, cette bascule bistable étant positionnée lorsque l'on détecte une concordance des adresses réelles en sortie
de la porte ET.
4. La station de travail de la revendication 2, dans laquelle les moyens formant logique de contrôle -sur détection des homonymes (49) sont sous forme de machine à états.
5. La station de travail de la revendication 1, dans laquelle lesdits seconds moyens comprennent des moyens pour indiquer à l'unité de gestion de la mémoire qu'une page de la mémoire principale est une page devant ignorer
l'antémémoire.
6. La station de travail de la revendication 5, dans laquelle les moyens indicateurs comprennent un bit situé,
262 14 08.
dans l'unité de gestion mémoire, à l'intérieur d'un mot de qualification de page prévu pour chaque page, de sorte que lorsque ce bit est positionné pour une page tous les accès de données à cette page soient effectués directement vers la mémoire et depuis la mémoire, contournant ainsi la matrice
des données de l'antémémoire.
7. Un procédé pour détecter des incohérences de données dans la matrice de données d'une antémémoire et pour corriger les incohérences de données ainsi détectées, ce procédé étant destiné à une station de travail comportant un processeur central (11) relié à une matrice des paramétrages de l'antémémoire (23), ladite matrice des données de l'antémémoire (19), un tampon de réinscription (39), une unité de gestion de la mémoire (27), un registre d'adresse réelle (51), une mémoire principale (31) avec des adresses physiques, un détecteur de présence dans l'antémémoire (25) et une logique de contrôle de la station de travail (40), caractérisé en ce qu'il comprend les étapes consistant à: a) faire concorder par leurs bits d'adresse inférieurs toutes les adresses homonymes qui mappent la même adresse physique de la mémoire principale, à l'exception d'un ensemble prédéterminé d'adresses homonymes qui mappent des adresses physiques utilisées exclusivement par le système d'exploitation, de manière à pouvoir utiliser -le même emplacement de la matrice des données de l'antémémoire, et b) marquer comme étant des pages devant ignorer l'antémémoire les pages de l'ensemble prédéterminé d'adresses homonymes qui mappent des adresses physiques
utilisées exclusivement par le système d'exploitation.
8. Le procédé de la revendication 7, dans lequel l'étape consistant à faire concorder par leurs bits d'adresse inférieurs les adresses homonymes comprend les étapes consistant à: a) détecter les adresses homonymes qui mappent des
adresses physiques de la mémoire principale,.-.
b) obtenir, à partir de l'une des matrices des données de l'antémémoire que l'on a sélectionnée et de la mémoire principale, les données utilisées en cas de cycles de lecture et de cycles d'écriture o l'on n'a rien trouvé dans l'antémémoire, et c) mettre sélectivement à jour la matrice des données de l'antémémoire en cas de cycles d'écriture o l'on n'a rien
trouvé dans l'antémémoire.
9. Le procédé de la revendication 8, dans lequel l'étape consistant à détecter les homonymes comprend les étapes consistant à: a) produire un signal de sortie de comparateur qui soit un "un" logique lorsque l'adresse mémorisée dans le registre d'adresse réelle concorde avec une adresse d'antémémoire prédéterminée se trouvant dans l'unité de gestion de la mémoire, b) appliquer à une porte ET ayant l'une de ses entrées reliée à la sortie de ce comparateur et une autre de ses entrées reliée à un bit de validité d'antémémoire se trouvant à l'intérieur d'un registre d'adresse virtuelle qui mémorise une adresse virtuelle prédéterminée chargée à partir de la matrice des paramétrages de l'antémémoire, et c) positionner une bascule bistable reliée à la sortie de cette porte ET, cette bascule bistable étant positionnée lorsque l'on détecte une concordance des adresses réelles en
sortie de la porte ET.
10. Le procédé de la revendication 7, dans lequel l'étape consistant à marquer les pages comme étant des pages devant ignorer l'antémémoire comprend l'étape consistant à indiquer à l'unité de gestion de la mémoire qu'une page de la mémoire
principale est une page devant ignorer l'antémémoire.
11. Le procédé de la revendication 10, dans -lequel l'étape consistant à consistant à indiquer qu'une page est une page devant ignorer l'antémémoire comprend l'étape consistant à positionner un bit' situé, dans l'unité de
2 62 1 4 0 8
gestion mémoire, à l'intérieur d'un mot de qualification de page prévu pour chaque page, de sorte que lorsque ce bit est positionné pour une page tous les accès de données à cette page soient effectués directement vers la mémoire et depuis la mémoire, contournant ainsi la matrice des données de l'antémémoire. Jx
FR8812827A 1987-10-02 1988-09-30 Procede et systeme de gestion des adresses homonymes pour station de travail a antememoire a adressage virtuel et a reinscription Granted FR2621408A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10463587A 1987-10-02 1987-10-02

Publications (2)

Publication Number Publication Date
FR2621408A1 true FR2621408A1 (fr) 1989-04-07
FR2621408B1 FR2621408B1 (fr) 1994-04-22

Family

ID=22301527

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8812827A Granted FR2621408A1 (fr) 1987-10-02 1988-09-30 Procede et systeme de gestion des adresses homonymes pour station de travail a antememoire a adressage virtuel et a reinscription

Country Status (7)

Country Link
JP (1) JPH071489B2 (fr)
AU (1) AU609519B2 (fr)
CA (1) CA1301354C (fr)
DE (1) DE3832758C2 (fr)
FR (1) FR2621408A1 (fr)
GB (1) GB2210479B (fr)
HK (1) HK95493A (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0475422A3 (en) * 1990-09-14 1993-06-16 Hughes Aircraft Company Multifunction high performance graphics rendering processor

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5813046A (en) * 1993-11-09 1998-09-22 GMD--Forschungszentrum Informationstechnik GmbH Virtually indexable cache memory supporting synonyms
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
US6189074B1 (en) 1997-03-19 2001-02-13 Advanced Micro Devices, Inc. Mechanism for storing system level attributes in a translation lookaside buffer
US6446189B1 (en) 1999-06-01 2002-09-03 Advanced Micro Devices, Inc. Computer system including a novel address translation mechanism
US6510508B1 (en) 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US6665788B1 (en) 2001-07-13 2003-12-16 Advanced Micro Devices, Inc. Reducing latency for a relocation cache lookup and address mapping in a distributed memory system
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator
US11853231B2 (en) 2021-06-24 2023-12-26 Ati Technologies Ulc Transmission of address translation type packets

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54148329A (en) * 1978-05-15 1979-11-20 Toshiba Corp Buffer memory control system and information processor containing buffer memory
JPS595482A (ja) * 1982-06-30 1984-01-12 Fujitsu Ltd キヤツシユバツフア装置管理方式
JPS62145341A (ja) * 1985-12-20 1987-06-29 Fujitsu Ltd キヤツシユメモリシステム
EP0282213A3 (fr) * 1987-03-09 1991-04-24 AT&T Corp. Unité de gestion de mémoire avec des contextes simultanés

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COMPUTER DESIGN. vol. 26, no. 14, Août 1987, LITTLETON, MASSACHUSETTS US pages 89 - 94; VAN LOO: 'Maximize performance by choosing best memory.' *
ELECTRONIC ENGINEERING. vol. 58, no. 715, Juillet 1986, LONDON GB pages 59 - 68; GAY: 'M68000 Family Memory Management - Part 2' *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0475422A3 (en) * 1990-09-14 1993-06-16 Hughes Aircraft Company Multifunction high performance graphics rendering processor

Also Published As

Publication number Publication date
GB2210479A (en) 1989-06-07
CA1301354C (fr) 1992-05-19
GB8819017D0 (en) 1988-09-14
GB2210479B (en) 1992-06-17
DE3832758A1 (de) 1989-04-13
JPH071489B2 (ja) 1995-01-11
AU609519B2 (en) 1991-05-02
FR2621408B1 (fr) 1994-04-22
AU2242288A (en) 1989-04-06
HK95493A (en) 1993-09-24
JPH01108651A (ja) 1989-04-25
DE3832758C2 (de) 1996-05-30

Similar Documents

Publication Publication Date Title
FR2621407A1 (fr) Systeme de reaffectation des adresses et de purge des blocs d'antememoire pour station de travail a antememoire a adressage virtuel et a reinscription
US8347025B2 (en) Memory controller interface
CN101488103B (zh) 高速缓冲存储器、系统和数据存储方法
EP1619590B1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
EP0118828A2 (fr) Dispositif de lecture d'instructions et méthode d'opération
US7185148B2 (en) Read access and storage circuitry read allocation applicable to a cache
US20070143287A1 (en) Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions
FR3103586A1 (fr) Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
US8499123B1 (en) Multi-stage pipeline for cache access
US8332590B1 (en) Multi-stage command processing pipeline and method for shared cache access
EP1710703A1 (fr) Cohérence de cache dans un système multiprocesseurs à mémoire partagée
FR2621408A1 (fr) Procede et systeme de gestion des adresses homonymes pour station de travail a antememoire a adressage virtuel et a reinscription
EP1607878B1 (fr) Procédé de traitement d'une adresse virtuelle pour la programmation d'un contrôleur de DMA, système sur puce et programme d'ordinateur associés
US6760810B2 (en) Data processor having instruction cache with low power consumption
JPH0950400A (ja) マルチプロセッサシステム
EP2148279A1 (fr) Méthode de mise à jour de données dans des mémoires utilisant une unité de gestion mémoire
US6374338B1 (en) Method for performing configuration tasks prior to and including memory configuration within a processor-based system
US7424576B2 (en) Parallel cachelets
JP4047281B2 (ja) キャッシュメモリをメインメモリに同期させる方法
US5781922A (en) Page boundary caches
JP3733604B2 (ja) キャッシュメモリ
TWI308719B (en) Cache controllers, buffers and cache systems with a filling cacheline for accessing data to cache memory
US6643736B1 (en) Scratch pad memories
US6694468B1 (en) Method and apparatus to test memory
JPS63318654A (ja) 中間バッファリプレ−ス決定方式

Legal Events

Date Code Title Description
ST Notification of lapse