DE2710477C2 - - Google Patents

Info

Publication number
DE2710477C2
DE2710477C2 DE2710477A DE2710477A DE2710477C2 DE 2710477 C2 DE2710477 C2 DE 2710477C2 DE 2710477 A DE2710477 A DE 2710477A DE 2710477 A DE2710477 A DE 2710477A DE 2710477 C2 DE2710477 C2 DE 2710477C2
Authority
DE
Germany
Prior art keywords
level
block
information
faster
processor
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.)
Expired
Application number
DE2710477A
Other languages
English (en)
Other versions
DE2710477A1 (de
Inventor
Lucien Conflans-Sainte-Honorine Fr Censier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
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 Bull SA filed Critical Bull SA
Publication of DE2710477A1 publication Critical patent/DE2710477A1/de
Application granted granted Critical
Publication of DE2710477C2 publication Critical patent/DE2710477C2/de
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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Description

Die Erfindung betrifft eine Anordnung zur kohärenten Verwaltung des Informationsaustauschs zwischen den Speicherblöcken zweier aneinanderstoßender Niveaus einer Speicherhierarchie nach dem Oberbegriff des Patentanspruchs 1.
Bei einer solchen Anordnung mit zwei aneinanderstoßenden Niveaus der Speicherhierarchie wird das schnellere Niveau von Befehls- Prozessoren benutzt, während die weniger schnellen Niveaus nur von Schaltungen geleitet werden, die Leit-Prozessoren genannt werden können; solche Schaltungen sind im übrigen auch in dem schnelleren Niveau zusätzlich zu oder in Verbindung mit den Befehls- Prozessoren vorhanden.
Die Verwendung von Speicherhierarchien in den Datenverarbeitungsanlagen ist allgemein üblich, weil man dadurch über einen möglichst großen Speicherraum verfügen kann, der gegenwärtig beispielsweise etwa 1 Milliarde Oktaden beträgt, ohne daß der Gesamtaufwand unannehmbar groß wird, weil an dieser Hierarchie die verschiedenen Technologien im umgekehrten Verhältnis zu ihren Eigenkosten teilnehmen. Man kann dann in die schnelleren Speicher, die normalerweise den Befehls-Prozessoren zugeordnet sind, die jeweils nützlichsten Informationen einbringen, die dann mit einer mittleren Zugriffszeit verfügbar sind, die in der Größenordnung der Zykluszeit des schnellsten Teils der Hierarchie liegt, während die Gesamtkapazität gleich derjenigen des langsamsten Niveaus ist.
Die Verwaltung der Niveaus dieser Speicherhierarchie ergibt unter anderem das Problem der Kohärenz der Informationsübertragungen zwischen den verschiedenen Niveaus dieser Hierarchie. Ein solches Problem besteht jedesmal dann, wenn ein Niveau mehrere Blöcke mit autonomer Leitung enthält, die mit dem gleichen Block eines langsameren Niveaus im Informationsaustausch stehen und dabei Informationen behandeln, die auf dem schnelleren Niveau im Verlauf der Ausführung einer Arbeit modifizierbar sind, die einen ausschließlichen oder nicht ausschließlichen Zugang zu modifizierbaren Informationen hat. Eine Inkohärenz kann sich ergeben, wenn Kopien der gleichen Ursprungsinformation in mehreren voneinander unabhängigen Blöcken des schnelleren Niveaus vorhanden und modifiziert sein können. Als "Block" wird im vorliegenden Fall jeder Speicher oder Speicherteil eines Niveaus bezeichnet, der autonom durch einen örtlichen Leit-Prozessor geleitet wird, der wenigstens auf dem schnelleren Niveau mit einem oder mehreren der dort vorhandenen Prozessoren zusammenfallen kann.
Nach der üblichen Terminologie bezeichnet man als "Seite" die kleinste Informationsmenge, die auf einem Niveau der Hierarchie mit dem sich anschließenden weniger schnellen Niveau ausgetauscht werden kann, während diese "Seite" für den Informationsaustausch mit dem sich anschließenden schnelleren Niveau in "Fragmente" unterteilbar ist. Im allgemeinen ist die Größe der Seiten eine Potenz von zwei, und für die Informationsübertragungen ist es zweckmäßig, daß die Seiten eines Niveaus eine Größe haben, die ein Vielfaches der Größe der Seiten des sich anschließenden schnelleren Niveaus ist.
Dem Leit-Prozessor jedes Blocks ist in den meisten Fällen ein Repertoire von Zustandswörtern zugeordnet, das ebenso viele Wörter enthält, wie Seiten im Block oder auch Seitenfragmente vorhanden sind. Jedes Zustandswort der Repertoires enthält wenigstens eine Informationsadresse und Zustandsbits, welche diese Information betreffen.
In der FR-OS 23 08 164 ist ein Verfahren zur kohärenten Leitung der Informationen in einer Speicherhierarchie beschrieben, bei welchem jeder Leit-Prozessor eines Blocks des schnelleren Niveaus zusammenwirkt, von denen jeder einem Leit- Prozessor und/oder einem Befehls-Prozessor zugeordnet ist, für jede Seite des Blocks in dem dieser Seite entsprechenden Register seines Repertoires die Operationen des Lesens zu und des Schreibens und der Abwurfsignalisierung von dem schnelleren Niveau speichert und bei jeder Anforderung des Lesens eines Fragments einer Seite des Blocks der Leit-Prozessor dieses Blocks den auf diese Weise gespeicherten Inhalt des betreffenden Registers des Repertoires befragt, um zu entscheiden, ob diese Anforderung unmittelbar erfüllt werden kann, oder ob vorher die Blöcke des schnelleren Niveaus, die zuvor Fragmente der gleichen Seite empfangen haben, von diesen Kopien entleert werden müssen.
Bei einer besonderen Ausführungsform des Verfahrens wird jedes Seitenregister des Repertoires des weniger schnellen Niveaus in ebenso viele Stellen zur Speicherung dieser Operation unterteilt, wie Blöcke im schnelleren Niveau vorhanden sind. Falls erforderlich, kann jede dieser Stellen ihrerseits in ebenso viele Speicherstellen unterteilt werden, wie Fragmente in der Seite des Blocks des weniger schnellen Niveaus vorhanden sind.
Wenn die Informationen pro Seite des Blocks wenigstens des weniger schnellen Niveaus mit einem Repertoire-Index versehen sind, der anzeigt, ob die Information auf dem schnelleren Niveau modifizierbar ist oder nicht, wirkt sich die Abfragung des Leit-Prozessors des weniger schnellen Niveaus auch auf diesen Index aus. Wenn die Information als nicht modifizierbar markiert ist, wird die Leseanforderung unmittelbar erfüllt, ohne vorherige Entleerung.
Im praktischen Betrieb haben die Anwendungsmodalitäten dieses Verfahrens gewisse unerwünschte Erscheinungen gezeigt, die gemeinsam zur Verlangsamung des Informationsaustauschs zwischen den Niveaus beitragen, und insbesondere zwischen dem schnellsten Niveau, das gewöhnlich von Befehls-Prozessoren geleitet wird, von denen jeder Aufgaben-Programme ausführt, deren Ablauf zahlreiche Informationsübertragungen zwischen ihren autonomen Blöcken und dem sie bedienenden Block des weniger schnellen Niveaus erfordern, der nur durch einen einfachen Leit- Prozessor, mit anderen Worten durch einen einfachen "örtlichen Automaten" geleitet wird. Natürlich muß gerade zwischen diesen beiden Niveaus die strikteste Kohärenz aufrecht erhalten werden.
Bei dem in der FR-OS 23 08 164 beschriebenen Verfahren wird nämlich die Leitung des Informationsaustauschs vollständig von dem weniger schnellen Niveau übernommen. Die Speicherung, d. h. praktisch die Zählung der Austauschoperationen, erfolgt in dem Repertoire der Zustandswörter oder in der "Tabelle", die dem autonomen Leit-Prozessor eines Blocks des weniger schnellen Niveaus zugeordnet ist. Diese Verwaltung erfolgt also vollkommen mit der Zugriffszeit dieses langsameren Niveaus. Die Entleerungsbefehle für die Blöcke des schnelleren Niveaus werden also ohne weiteres auf diesem langsameren Niveau entschieden. Jeder auf diese Weise erteilte Entleerungsbefehl unterscheidet auf dem schnelleren Niveau in keiner Weise zwischen den Fragmenten der Seite, deren Wiedereingabe in den Block des schnelleren Niveaus er befiehlt. Es werden also unterschiedslos nicht modifizierbare Informationen, beispielsweise die Programminformationen, und modifizierbare Informationen, die jedoch nicht modifiziert worden sind, zurückgebracht, und sogar modifizierbare Informationen, die modifiziert worden sind, aber nur zu der Arbeit gehören, die in dem Prozessor läuft, der dem betreffenden Block des schnelleren Niveaus zugeordnet ist. Es gibt somit einen Zeitverlust und eine Verringerung des Wirkungsgrades, die größer als oft erwünscht ist, weil jede Rückführung von Informationen eine Zugriffszeit zu dem Block des langsameren Niveaus erfordert. Die Hinzufügung eines Index, der anzeigt, ob die Information modifizierbar ist oder nicht, auf dem weniger schnellen Niveau vermindert zwar die Anzahl der Entleerungsbefehle, verringert aber nicht die Dauer der Ausführung jedes Befehls; ferner ist diese Verminderung teilweise dadurch wieder aufgehoben, daß eine solche Markierung nur auf den vollständigen Inhalt einer Seite des Blocks des weniger schnellen Niveaus angewendet werden kann, damit die Kapazität des jedem Leit-Prozessor des weniger schnellen Niveaus zugeordneten Repertoires nicht vergrößert wird; selbst in diesem Fall ist es dann erforderlich, um eine solche Markierung in gültiger Weise bei jedem Fragment anzuwenden, daß die Entscheidung auf dem schnelleren Niveau bei der Übertragung der Seite getroffen wird, und daß die Information auf das weniger schnelle Niveau zur Speicherung zurückübertragen wird, wodurch sich offensichtlich ein Zeitverlust ergibt.
Aufgabe der Erfindung ist es, bei einer Anordnung der eingangs angegebenen Art die Kohärenz des Informationsaustauschs zwischen verschiedenen Niveaus der Speicherhierarchie ohne Kommunikation zwischen den Speicherblöcken jeweils desselben Niveaus zu gewährleisten.
Diese Aufgabe wird bei einer gattungsgemäßen Anordnung erfindungsgemäß durch die im Kennzeichen des Patentanspruchs 1 angegebenen Merkmale gelöst.
Bei einer praktischen Ausführungsform der erfindungsgemäßen Anordnung ist auf dem weniger schnellen Niveau der Speicherhierarchie dem Leit-Prozessor jedes Speicherblocks eine Tabelle zugeordnet, die vorzugsweise in einer schnellen Technologie ausgeführt ist und ebenso viele Register enthält, wie Seiten oder Abschnitte des geleiteten Speicherblocks vorhanden sind. Jedes Register der Tabelle enthält ebenso viele Stellen wie Blöcke des schnelleren Niveaus von dem Block des weniger schnellen Niveaus bedient werden, sowie Eintragfelder, die an jeder dieser Stellen in binärer Weise notieren, ob der Block des schnelleren Niveaus Auszüge oder Fragmente der Seite oder des Abschnitts des Speicherblocks des weniger schnellen Niveaus enthält oder nicht. Auf dem schnelleren Niveau ist jedem Leit- und/oder Befehls-Prozessor und somit jedem Speicherblock dieses Niveaus eine Tabelle zugeordnet, die ebenso viele Register enthält, wie Seiten oder Abschnitte in dem Block des weniger schnellen Niveaus vorhanden sind, um die Eingaben oder Ausgaben von Auszügen dieser Seiten oder Abschnitte in dem Speicherblock dieses Niveaus zu zählen, während eine andere Tabelle, die gegebenenfalls mit der Zähltabelle vereinigt sein kann, die Adressen der Seiten des Blocks des schnelleren Niveaus notiert, an denen diese Auszüge eingeordnet sind, sowie kennzeichnende Bits für den Zustand dieser Auszüge auf dem Niveau des Blocks enthält, nämlich wenigstens ein Gültigkeitsbit, gegebenenfalls ein Bit, das anzeigt, ob die Information des Auszugs auf diesem Niveau durch den Prozessor des Blocks modifiziert worden ist oder nicht, und gegebenenfalls auch noch ein Bit, das anzeigt, ob der Block ausschließlich oder nicht ausschließlich Zugriff zu dem Auszug gehabt hat (d. h. unter Ausschluß des Zugriffs der übrigen Blöcke des schnelleren Niveaus oder ohne Ausschluß des Zugriffs dieser übrigen Blöcke).
Dieser Grundanordnung werden, je nach den Anforderungen der Anwendung, Einrichtungen zur Verwaltung der Tabellen hinzugefügt.
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
Einzelheiten einer Ausführungsform der Erfindung ergeben sich aus der folgenden Beschreibung anhand der Zeichnung. In der Zeichnung zeigt
Fig. 1 eine schematische Darstellung eines Speichersystems, von dem nur ein Block des weniger schnellen Niveaus und zwei Blöcke des schnelleren Niveaus dargestellt sind, wobei dieses Schema aber auf jede beliebige Anzahl von Blöcken in jedem Niveau erweiterungsfähig ist, und wobei ferner angenommen ist, daß die Leitung auf dem schnelleren Niveau durch Befehls- Prozessoren erfolgt, und
Fig. 2 bis 5 Diagramme zur Erläuterung von vier Anwendungsbeispielen der Anordnung von Fig. 1.
In Fig. 1 sind teilweise die beiden schnelleren Speicherniveaus (i + 1) und (i) einer Speicherhierarchie dargestellt, die, wie angedeutet, wenigstens ein Niveau (i + 2) aufweist, das weniger schnell als das Niveau (i + 1) ist, während das Niveau (i) schneller als das Niveau (i + 1) ist. Ein Block eines Niveaus steht im Informationsaustausch mit mehreren Blöcken des anstoßenden schnelleren Niveaus über eine Mehrfachverbindung, wie sie bei BUS zwischen den Niveaus (i + 2) und (i + 1) einerseits und den Niveaus (i + 1) und (i) andererseits dargestellt ist.
Im Niveau (i + 1) ist nur ein Speicherblock Bp und der zugeordnete Leit-Prozessor PBp dargestellt. Im Niveau (i) sind zwei Speicherblöcke bj und bk und die jeweils zugeordneten Leit-Prozessoren Pbj und Pbk dargestellt. Es wird hier angenommen, daß es sich um Befehls-Prozessoren handelt, die Aufgabenprogramme aufgrund von Informationen ausführen, die allein aus dem Block Bp des Niveaus (i + 1) kopiert sind.
Zur bequemeren Erläuterung wird als Beispiel angenommen, daß die dargestellten Blöcke in Seiten unterteilt sind, wobei jede Seite ihrerseits in Fragmente unterteilt ist, obwohl dies für die Erfindung nicht wesentlich ist. Im Block Bp befinden sich beispielsweise x Seiten P 1 bis Px, von denen jede Seite ihrerseits aus n Fragmenten besteht. Die Blöcke bj und bk enthalten jeweils z Seiten p 1 bis pz, und jede dieser Seiten besteht aus q Fragmenten. Es ist jedoch nicht unbedingt notwendig, daß die Blöcke bj und bk die gleiche Seitenzahl mit der gleichen individuellen Kapazität haben.
Dem Leit-Prozessor PBp ist eine Tabelle Tp zugeordnet, die vorzugsweise in einer schnellen Technologie ausgeführt ist. Diese Tabelle ist wie folgt organisiert: In der Stelle AP steht die Nummer der Seite des Blocks Bp, also x Register mit den Adressen AP 1 bis APx; in der "Zeile" gibt es so viele Bitstellen wie Blöcke, also m, in dem schnelleren Niveau, die im Informationsaustausch mit dem Block Bp stehen, in Zellen b 1 bis bm. Der Klarheit der Erläuterung wegen ist dargestellt, daß der Tabelle Tp ein Schreib-Lese-Register ELTp zugeordnet ist. Dieses Register kann fortgelassen werden, wenn das Ablesen in der Tabelle zerstörungsfrei erfolgt, und wenn ein direktes Einschreiben in die Tabelle möglich ist. Jede der Zellen b 1 bis bm jeder Zeile der Tabelle kann ein Bit des Wertes "1" oder des Wertes "0" aufnehmen. Das Vorhandensein eines Bits des Wertes "1" in einer dieser Stellen zeigt an, daß es wenigstens einen Auszug aus der im Abschnitt AP adressierten Seite in wenigstens einem Block des schnelleren Niveaus gibt, der seinerseits einer der Adressen b 1 bis bm hat. Jedesmal dann, wenn aus dem Block Bp zu einem der Blöcke des Niveaus (i) ausgelesen wird, wird nämlich ein Bit des Wertes "1" in der entsprechenden Zelle b 1 bis bm unter der Steuerung durch den Leit-Prozessor PBp markiert. Der Leit-Prozessor bezeichnet die Adresse des Blocks mit dem schnelleren Niveau und aktiviert eine Schaltung R, die den Markierungswert "+1" in die adressierte Stelle einbringt. Das Bit wird durch Aktivierung einer Schaltung WE auf den Wert 0 gebracht, was praktisch eine Löschung des adressierten Bits ergibt. Die Bedingungen dieser Löschung werden später angegeben; das Steuersignal empfängt der Leit-Prozessor PBp von dem entsprechenden Block b des schnelleren Niveaus. Dem Abschnitt b 1 bis bm des Schreib- Lese-Registers ELTp ist eine Oder-Schaltung OU zugeordnet. Bei jeder Befragung einer Zeile der Tabelle wird somit ein Signal zu dem Leit-Prozessor geschickt, das anzeigt, daß ein oder mehrere Auszüge der im Abschnitt AP adressierten Seite in einem oder mehreren anderen Blöcken des schnelleren Niveaus vorhanden sind, wenn der Ausgang 1 der Oder- Schaltung aktiviert ist, oder daß keine solchen Auszüge vorhanden sind, wenn der Ausgang 0 der Oder-Schaltung aktiviert ist.
Da in dieser Tabelle die Information "1" in jeder der Zellen b 1 bis bm jeder Zeile keine Zählung der Anzahl der Auszüge ergibt, wäre es unnötig, die Steuerung dieser Information jedesmal zu wiederholen, wenn ein Auszug aus dem Block Bp ausgelesen und zu dem gleichen Block des schnelleren Niveaus gerichtet wird. Es ist jedoch einfacher, diese Steuerung laufen zu lassen, die somit nach einer ersten Notierung eines Auszugs an einer der Stellen in einer adressierten Zeile der Tabelle lediglich den Wert "1" an dieser Stelle bestätigt, als den Leit-Prozessor mit einer Anordnung zur Unterscheidung zwischen der ersten Notierung und den folgenden zu belasten.
Wenn es jedoch für nützlich angesehen wird, die Auszüge zu identifizieren, könnte natürlilch jede Stelle von b 1 bis bm eine Kapazität von z Bits haben, wenn mit z die Anzahl der Seiten jedes der Blöcke b 1 bis bm des schnelleren Niveaus ist, die im Informationsaustausch mit dem Block Bp stehen. Ein Auszug aus dem Block Bp, d. h. ein "Fragment" einer Seite des Blocks Bp, füllt nämlich eine Seite der Blöcke b des schnelleren Niveaus, zumindest bei dem üblichen Fall der Ausbildung eines solchen Systems. Eine solche Kapazitätsbedingung entfällt offensichtlich bei der bevorzugten Anwendung der Erfindung, bei der die Auszüge in der Tabelle Tp nicht gezählt werden.
Das Lesen und Schreiben im Speicherblock Bp erfolgt in üblicher Weise durch die Steuerung des Adressenregisters RA und des Schreib-Lese-Registers REL durch den Leit-Prozessor PBp.
Im schnelleren Niveau (i) sind zwei Speicherblöcke bj und bk und ihre Leit-Prozessoren Pbj bzw. Pbk dargestellt, von denen angenommen wird, daß sie durch Befehls-Prozessoren Pj bzw. Pk gesteuert werden, die Programmaufgaben ausführen.
Bei gewissen früheren Systemen war es üblich, jedem dieser Prozessoren eine Tabelle von Zustandswörter zuzuordnen, die ebenso viele Zeilen enthält, wie Blöcke vorhanden sind, und unter diesen Zustandswörtern und den diese Zustandswörter bildenden Indizes findet man oft ein "Gültigkeits"- Indexbit V, das jedesmal dann auf den Wert "1" gebracht wird, wenn die betreffende Seite p von dem Leit-Prozessor des Blocks "ungültig" gemacht wird (entweder aufgrund einer örtlichen Entscheidung oder aufgrund eines vom weniger schnellen Niveau stammenden Befehls). Man findet darin ferner ein Indexbit M, das normalerweise im Zustand "0" ist und in den Zustand "1" gebracht wird, wenn die Information durch den örtlichen Leit-Prozessor modifiziert wird oder wenn diesem angezeigt wird, daß sie auf dem schnelleren Niveau modifiziert worden ist. Für bestimmte Modalitäten der praktischen Anwendung der Erfindung findet man ferner einen Ausschluß-Index X; wenn dieser durch den Leit-Prozessor des Blocks in den Zustand "1" gebracht ist, zeigt er an, daß die Information von dem weniger schnellen Niveau unter einer Ausschließlichkeitsbedingung erhalten worden ist, daß also der Zugang zu dieser Information auf dem weniger schnellen Niveau vorübergehend für jeden anderen Block des schnelleren Niveaus ausgeschlossen ist. Wenn dieser Index angewendet wird, wird er einem Entleerungsbefehl unterstellt, der auf einen Aufruf zum Lesen im Block Bp durch einen Block b des schnelleren Niveaus folgt.
Die Indizes V und M sind bereits bei bestimmten früheren Systemen angewendet worden, um die Kohärenz der Informationsübertragungen zwischen zwei aneinanderstoßenden Niveaus einer Speicherhierarchie zu gewährleisten; hierauf braucht nicht näher eingegangen zu werden, da dies außerhalb der eigentlichen Erfindung liegt, obwohl es für die praktische Anwendung der Erfindung auch vorteilhaft sein kann, diese Maßnahme anzuwenden, um die Wirksamkeit des kohärenten Leitsystems zu erhöhen.
Insbesondere wird der Gültigkeitsindex V, der auch außerhalb jedes Kohärenzproblems und sogar außerhalb jedes Speicherhierarchieproblems üblich ist, vorzugsweise in einem Entleerungsbefehl und in einem Berichtigungsbefehl berücksichtigt, der von dem Leit-Prozessor des Blocks des weniger schnellen Niveaus zu den mit ihm in Informationsaustausch stehenden Leit-Prozessoren der Blocks des schnelleren Niveaus geschickt wird. Ein Entleerungsbefehl hat zur Folge, daß der Block Bp aufs laufende gebracht wird und daß dann die betreffenden Informationen in dem Block des schnelleren Niveaus, der davon Kopien enthält, ungültig gemacht werden. Ein Berichtigungsbefehl (d. h. ein Befehl, der die Information aufs laufende bringt) wird in einem Block des schnelleren Niveaus nur dann ausgeführt, wenn der Gültigkeitsindex den Wert "0" hat. Wenn ferner der Modifizierungsindex M vorhanden ist, schickt der Aufhebungsbefehl die modifizierten Informationen zu dem weniger schnellen Niveau, bevor sie ungültig gemacht werden. Ein Berichtigungsbefehl schickt nur dann eine gültige Information zu dem weniger schnellen Niveau, wenn der Modifizierungsindex M den Wert "1" hat (wonach dieser Index auf den Wert "0" zurückgebracht wird).
Die Indizes V, M und X sind daher jeder Seite p eines Blocks des schnelleren Niveaus in der dem Leit-Prozessor dieses Blocks zugeordneten Tabelle von Zustandswörtern hinzuzufügen, damit bei einer Befragung dieser Tabelle unter der Adresse der Nummer der Seite des Blocks diese Indizes direkt überprüfbar und modifizierbar sind.
Grundsätzlich muß aber für die Zwecke der Erfindung für jeden Block des schnelleren Niveaus eine Tabelle für die Identifizierung der Nummern der Seiten des Blocks des weniger schnellen Niveaus vorhanden sein, von denen Auszüge in dem Block vorhanden sind, sowie eine Zählung der Anzahl dieser Auszüge und eine Identifizierung der Seiten des Blocks des schnelleren Niveaus, an denen sich diese Auszüge befinden.
Es gibt normalerweise zwei getrennte Tabellen, nämlich eine Tabelle für die "normale" Funktion der Identifizierung der Zustände der in den Seiten des Blocks enthaltenen Information und eine andere Tabelle für die erfindungsgemäße "spezielle" Funktion der Identifizierung und Zählung der Auszüge des Blocks des weniger schnellen Niveaus und für die Identifizierung der Stellen, an denen sie sich befinden.
Zum besseren Verständnis der Erläuterung erscheint es vorteilhaft, nur eine Tabelle darzustellen, in der diese beiden getrennten Tabellen vereinigt sind, und eine solche vereinigte Tabelle ist in Fig. 1 bei Tj für den Block bj und seinen Prozessor Pbj sowie bei Tk für den Block bk und dessen Prozessor Pbk dargestellt. Eine solche Tabelle mit assoziativer Adressierung enthält dann beispielsweise in jeder Zeile eine Adresse der Seite des Blocks des weniger schnellen Niveaus bei AP 1 bis APx, die Anzahl CE der Auszüge aus dieser Seite, die in dem Block vorhanden sind, und ebenso viele Stellen p 1 bis pz, wie es Seiten des betreffenden Blocks des schnelleren Niveaus gibt, an denen eine Adresse p und eine Markierung (.) für das Vorhandensein eines Auszugs aus der Seite AP in der Seite p, gefolgt von den drei zuvor definierten Indizes V, M, X, eingeschrieben sein können. Das Adressenregister ad kann also eine Adresse APb oder eine Adresse p empfangen, um den Inhalt einer auf diese Weise ausgewählten Zeile in das Schreib-Lese-Register el einzubringen.
Das Schreib-Lese-Register el ist an der Stelle, an der es den Zählerstand CE für die Anzahl der Auszüge empfängt, mit einem Decodierer mit zwei Ausgängen versehen, von denen der eine Ausgang (O) anzeigt, daß keine Auszüge vorhanden sind, während der andere Ausgang ( ) anzeigt, daß Auszüge vorhanden sind. Der Ausgang (O) ist mit einem Eingang des Leit-Prozessors Pb verbunden. Der Ausgang ( ) ist mit einem Steuereingang einer Torschaltung g verbunden, die somit entsperrt wird, wenn der Ausgang ( ) erregt ist. Der Ausgang der Torschaltung g ist mit einem Generator (-) für ein Bit "-1" verbunden, dessen Ausgang zu dem Register el gerichtet ist, um den Zählerstand CE der Auszüge jedesmal dann um eine Einheit zu verringern, wenn ein im Block b vorhandenes Fragment aufgrund eines vom Leit-Prozessor Pb abgegebenen Befehls aufgegeben wird. Der Ausgang eines Generators (+) für ein Bit "+1" ist gleichfalls mit dem Register el verbunden, um darin den Zählerstand CE um eine Einheit zu erhöhen, wenn er vom Prozessor Pb aktiviert wird.
Wenn die Stelle CE ebenso viele Bitzellen enthält, wie Fragmente der Seite P des Blocks Bp vorhanden sind, also n, ist der Decodierer eine einfache Oder-Schaltung, und die Generatoren (+) und (-) bewirken die Einschreibung oder Löschung der Bits in diesen Zellen, die dann bei der Adressierung der Tabelle identifiziert werden.
Jeder Block des schnelleren Niveaus wird von dem Prozessor Pb mit Hilfe des Adressenregisters ra und des Schreib- Lese-Registers Rel des Blocks b gesteuert.
Die Verwaltung der Tabelle läßt sich wie folgt erläutern:
Jedesmal dann, wenn eine Information in einem Block des schnelleren Niveaus auf Anforderung durch dessen Prozessor Pb kopiert wird, wird ein Anwesenheitsbit an der Stelle CEk der Zeile mit der Adresse AP eingegeben, von der das Fragment der Seite des Blocks Bp stammt, und zwar durch Aktivierung des Bitgenerators (+) durch den Prozessor, der den Inhalt der Zeile mit der Adresse AP in das Register el seiner Tabelle T gerufen hat. Gleichzeitig markiert er ein Anwesenheitsbit für das Fragment an der Adresse p der Seite des Blocks b in dieser Zeile, und er ordnet ihm einen Index V = 0, einen Index M = 0 und einen Index X zu, der, je nach Lage des Falles, entweder 0 oder 1 sein kann.
Jedesmal dann, wenn eine Information "aufgegeben" wird, ohne daß sie im schnelleren Niveau modifiziert worden ist, erregt der Prozessor seine Verbindung zu dem Generator (-), wobei er gleichzeitig in das Register el den Inhalt der Zeile ruft, die durch die Seite p adressiert worden ist, in der sich diese Information befindet. Somit wird der Auszug-Zählerstand CE um eine Einheit verringert, und ihre Seitenmarkierung wird gelöscht, oder es wird wenigstens ihr Bit V auf "1" gebracht, um sie ungültig zu machen. Das gleiche gilt für jede Information, die wieder in dem weniger schnellen Niveau kopiert wird. Wenn durch die Abwärtszählung der Zählerstand CE auf Null gebracht wird, verursacht die Erregung des Ausgangs (O) des Decodierers im Prozessor eine Abwurf-Signalgabe, die für den Block Bp des weniger schnellen Niveaus bestimmt ist, wobei gleichzeitig oder vorher eine Aufforderung für das Wiedereinschreiben der Information in den Block Bp erfolgt, wenn die Prüfung des Bits M gezeigt hat, daß die Information modifiziert worden ist. Falls erforderlich, wird dann ferner der Index X auf Null gebracht.
Jede Modifizierung der Information wird natürlich bei M notiert, wenn diese Modifizierung durch den mit dem Block verbundenen Befehls-Prozessor beschlossen worden ist.
Jede Signalisierung des Abwurfs eines Blocks b des schnelleren Niveaus wird von dem Leit-Prozessor PBp verarbeitet, damit die Anwesenheits-Markierung an der Selle des Adressenregisters AP, die dem den Abwurf signalisierenden Block b zugeordnet ist, gelöscht wird.
Durch die laufende Berichtigung der zuvor definierten Tabellen sowohl in dem Block des weniger schnellen Niveaus als auch in dem Block des schnelleren Niveaus ist es daher möglich, automatisch in jedem Zeitpunkt die Aufteilung der Informationen des Blocks Pb auf die Blöcke b des schnelleren Niveaus und die Zustände dieser Informationen erkennen zu lassen. Um aufgrund der zuvor beschriebenen elementaren Mechanismen die Kohärenz der Informationsleitung zu gewährleisten, genügt es, ihre Befehle der automatischen Leitung in den Prozessoren zu definieren.
Bevor mehrere Gruppen definiert werden, welche die Anpassungsfähigkeit des erfindungsgemäßen Systems für die Aufrechterhaltung der Kohärenz zeigen, ist zu bemerken, daß jede Verbindung zwischen dem Block B des weniger schnellen Niveaus und den Blöcken b des schnelleren Niveaus und umgekehrt jede Verbindung zwischen einem Block b des schnelleren Niveaus und dem Block B des weniger schnellen Niveaus über die Sammelleitungen BUS an der Schnittstelle des schnelleren Niveaus geht, und daß bei jeder dieser Verbindungen diese Sammelleitungen gleichzeitig eine vollständige Adresse führen, welche die Adressen der Seite des weniger schnellen Blocks und die Position der Information in dieser Seite enthält, und außerdem die gegebenenfalls übertragene Information und die Art des ausgeführten oder auszuführenden Befehls. Die Identität des anfordernden schnellen Blocks kann zu der vollständigen Adresse hinzugefügt sein oder von der diesem Block zugehörigen Rufleitung der Sammelleitung BUS abgeleitet werden. Es ist also festzustellen, daß ohne zusätzlichen Materialaufwand praktisch eine mögliche Zwischenverbindung zwischen den Blöcken b besteht, die bei gewissen Anwendungsmodalitäten der Erfindung ausgenutzt werden kann.
Die Fig. 2 bis 5 ermöglichen die Definition dieser Anwendungsmodalitäten. Jede dieser Figuren zeigt von I bis V verschiedene Stadien des Informationsaustauschs zwischen dem Block Bp des weniger schnellen Niveaus (i + 1) und zwei Blöcken bj und bk des schnelleren Niveaus (i) unter der Steuerung durch die Prozessoren Pj und Pk dieses schnelleren Niveaus.
Es werden nicht notwendigerweise alle Indizes der Tabellen bei diesen Anwendungsmodalitäten benutzt. Der Index V genügt für die Modalitäten der Fig. 2 und 3 und die Indizes V und M sowie der Index x für diejenige von Fig. 4. Nur die Modalität von Fig. 5 benutzt die drei Indizes V, M und X.
Fig. 2 betrifft den Fall, daß jede Modifikation einer Information auf dem schnelleren Niveau eine sofortige Berichtigung verursacht, durch die der Speicherblock Bp aufs laufende gebracht wird. Im Diagramm I ist eine Informationsgruppe, beispielsweise eine Seite des schnellen Blocks, aus dem Block Bp entnommen und im Block bj kopiert worden. Im Diagramm II ist die gleiche Informationsgruppe auch im Block bk kopiert worden. Wenn gemäß dem Diagramm III die im Block bj stehenden Informationen wenigstens teilweise modifiziert worden sind, müssen sie im Block bk "gelöscht" werden, wobei sie jedoch in den Block Bp zurückgeschickt werden müssen, damit dieser sofort aufs laufende gebracht wird (Programm des Prozessors Pj). Gemäß der obigen Beschreibung hat der Block Bp einen Entleerungsbefehl abgegeben, und dieser Befehl, der im Block bk nur unmodifizierte Informationen findet, hat verursacht, daß diese Informationen durch den Prozessor Pk ungültig gemacht worden sind. Wenn der Prozessor Pk ungültig gemachte Informationen benötig, fordert er sie wieder vom Block Bp an, und er erwirbt somit die modifizierten Informationen, die im Block Bp "aufs laufende gebracht" sind. Das Diagramm V zeigt lediglich, daß anschließend der Prozessor Pk vom Block Bp weitere Informationen erhalten kann, ohne den Block bj zu stören, da er sich mit dem Lesen begnügt.
Beim Empfang der Berichtigungs-Anforderung hat der Leit- Prozessor des Blocks Bp die Markierung für die Anwesenheit der Informationen in seiner Tabelle Tp für den Block bk gelöscht, nachdem er diese Anwesenheitsmarkierungen im Verlauf der Operationen I und II eingeschrieben hat. Er hat diese Markierung bei der Operation des Diagramms IV wieder eingeschrieben, ohne den Block Bj zu "entleeren".
Fig. 3 zeigt die Abänderung des Vorgangs, wenn im Block Bp die Berichtigung, durch die die modifizierten Daten aufs laufende gebracht werden, nicht sofort erfolgt.
Wenn nach der Eingabe einer Datengruppe in den Block bj (beispielsweise) gemäß dem Diagramm I der Prozessor Pk die gleichen Informationen anfordert, werden diese zu ihm übertragen; da aber die Markierung für das Vorhandensein der Informationen im Block bj in die Tabelle Tp eingeschrieben ist, wird ein Entleerungsbefehl, der sich aus einer Ungültigmachung dieser Informationsgruppe im Block bj ergibt, gemäß dem Diagramm II zum Prozessor Pj übertragen. Der Prozessor Pk kann dann Daten dieser Informationsgruppe modifizieren (Diagramm III), ohne die Blöcke Bp und bj zu stören. Wenn jedoch der Prozessor Pj (Diagramm IV) diese Informationen wieder anfordert, wird die Berichtigung vom Prozessor Pk verlangt, weil die Markierung für das Vorhandensein der Informationen in der Tabelle des Blocks Bp existiert. Der Block Bp wird aufs laufende gebracht, und der Bock bj empfängt die modifizierten Informationen; er kann sie gleichzeitig mit dem Block Bp erhalten, da sie, wie zuvor erwähnt, auf den Sammelleitungen BUS des Niveaus (i) vorhanden sind. Das Diagramm V zeigt den gleichen Fall wie das Diagramm V von Fig. 2.
Fig. 4 zeigt eine andere Abänderung des Vorgangs, wenn die Berichtigung im Block Bp, durch die die modifizierten Daten aufs laufende gebracht werden, nicht sofort erfolgt und unterstellt wird, daß die nicht modifizierten Daten in mehreren Blöcken des schnelleren Niveaus kopiert sind.
Die Diagramme I und II sind mit denjenigen von Fig. 2 identisch, jedoch sind die Übertragungen unter der Bedingung der Ausschließlichkeit durchgeführt worden, d. h., daß der Index X sowohl im Block bj als auch im Block bk auf den Wert "1" gebracht worden ist. Bei der ersten Modifizierung von Daten im Block bk (Diagramm III) werden die Daten im Block bj nach Prüfung des Vorhandenseins der Anwesenheitsmarkierung in der Tabelle des Blocks Bp ungültig gemacht, ohne daß aber der Block Bp aufs laufende gebracht wird; dies erfolgt aufgrund eines vom Prozessor Pk abgegebenen Ungültigmachungsbefehls, da dann die Indizes X und M beide durch den Prozessor Pk auf "1" gebracht worden sind. Der Prozessor Pk bewirkt, daß der Index M der Daten in seiner Tabelle Tk auf "1" gebracht wird. Jede spätere Modifizierung wird nicht signalisiert (Diagramm IV), da der Index M für die Datengruppe bereits auf dem Wert "1" ist. Wenn der Prozessor Pj die gleiche Datengruppe vom Block Bp anfordert, fordert der Leit-Prozessor des Blocks Bp die Berichtigung an, aber ohne Ungültigmachung im Block bk. Im Block bk wird der Index m auf "0" zurückgebracht. In den Blöcken Bp, bj und bk stehen somit die gleichen Versionen der betreffenden Informationen, und man befindet sich wieder im Zustand des Diagramms II.
Fig. 5 zeigt noch eine andere Variante, die den direkten Austausch von modifizierten Informationen zwischen den Blöcken des schnellen Niveaus ermöglicht, ohne daß der Speicher Bp des weniger schnellen Niveaus aufs laufende gebracht wird.
Die Diagramme I und II sind mit denjenigen von Fig. 4 identisch, einschließlich der Markierung des Index X. Wenn (Diagramm III) eine Modifizierung im Block Bj efolgt, wird der Index M in der Tabelle Tj auf den Wert "1" gebracht. Wenn die Tabelle Tp mehrere Bits des Wertes "1" für den Block bj enthält, und nachdem der Prozessor Pj den Ungültigmachungsbefehl abgegeben hat, weil die Indizes X und M dann beide auf dem Wert "1" sind, wird die Datengruppe der gleichen Adresse Ap im Block bk ungültig gemacht.
Wenn dann (Diagramm IV) der Prozessor Pk diese Datengruppe wieder anfordert, verursacht die Anforderung vom Prozessor Pk eine Entleerung im Block bj, wodurch der Index X, aber nicht der Index M in diesem Block auf "0" zurückgebracht wird. Der Block Bp wird nicht aufs laufende gebracht, und die modifizierten Daten werden direkt im Block bk kopiert, wo der Index M für diese Daten auf "1" gebracht wird. Da keine Kopierung im Block Bp stattgefunden hat, werden die Daten im Block bj nicht ungültig gemacht. Es bestehen somit dann in den Blöcken des schnelleren Niveaus zwei Informationssätze, die miteinander identisch sind, aber nicht die gegenwärtige Version in dem Block des weniger schnellen Niveaus haben. In der dem Prozessor Pj zugeordneten Tabelle wird der Index M auf "1" gehalten, aber der Index X wird auf "0" zurückgebracht.
Wenn anschließend im Block bj die Datengruppe vollständig verwertet worden ist, wird das Abwurfsignal zu dem weniger schnellen Niveau geschickt, begleitet von einer Einschreib- Anforderung, da M = 1. Der Speicher Bp wird dadurch aufs laufende gebracht (Diagramm V).
Zusammenfassend läßt sich sagen, daß das zuvor beschriebene System bei jeder beliebigen Anwendungsmodalität die beiden folgenden Bedingungen und damit die Kohärenz gewährleistet:
  • - Wenn ein von einem Prozessor abgegebener Lesebefehl eine Information betrifft, die in seinem Speicherblock nicht vorhanden ist, und wenn der Leit-Prozessor des Blocks des weniger schnellen Niveaus in seiner Tabelle feststellt, daß die Information in anderen Blöcken (oder in wenigstens einem anderen Block) des schnelleren Niveaus vorhanden ist, wird ein Berichtigungsbefehl ausgeführt, durch den der Block des weniger schnellen Niveaus aufs laufende gebracht wird;
  • - wenn ein von einem Prozessor abgegebener Schreibbefehl eine Information betrifft, die in seinem Speicherblock nicht vorhanden ist, oder die zwar vorhanden ist, wobei aber ihr Index M den Wert "0" hat, und wenn durch Befragung der dem Block des weniger schnellen Niveaus zugeordneten Tabelle festgestellt wird, daß die Information in anderen Blöcken vorhanden ist, wird ein Befehl zur Entleerung dieser anderen Blöcke ausgeführt.
Falls erwünscht, kann in dem weniger schnellen Niveau der Index M nicht global einer Seite p zugeordnet werden, sondern die Tabelle kann die Fragmente 1 bis q dieser Seite unterscheiden und ihnen individuell einen Index M zuordnen, wobei als Gegenleistung für diesen erhöhten Aufwand eine geringere Anzahl von Operationen zu erwarten ist, mit denen der Block des weniger schnellen Niveaus aufs laufende gebracht wird.

Claims (4)

1. Anordnung zur kohärenten Verwaltung des Informationsaustauschs zwischen den Speicherblöcken (Bp; bj, bk) zweier aneinanderstoßender Niveaus (i + 1; i) einer Speicherhierarchie, von denen das eine Niveau (i) schneller als das andere Niveau (i + 1) ist und jedes Niveau in Speicherblöcke (Bp; bj, bk) unterteilt ist, von denen jeder durch einen Leit-Prozessor (PBp; Pbj, Pbk) verwaltet wird, dem wenigstens eine auf dem laufenden gehaltene Tabelle (Tp; Tj, Tk) von Zustandswörtern zugeordnet ist, die von diesem Leit-Prozessor (PBp; Pbj, Pbk) bei jeder Lese- und Schreib-Operation befragt wird, wobei jeder Speicherblock (Bp) des Niveaus (i + 1) Informationen mit mehreren Speicherblöcken (bj, bk) des anschließenden schnelleren Niveaus (i) austauscht, dadurch gekennzeichnet,
daß jede Tabelle (Tp) eines Speicherblocks (Bp) des weniger schnellen Niveaus (i + 1) Eintragfelder (AP 1, . . . APx) enthält, um für jede Seite (P 1, . . . Px) dieses Speicherblocks (Bp) und für jeden davon bedienten Speicherblock (bj, bk) des schnelleren Niveaus (i) eine Markierung auf dem laufenden zu halten, die das Vorhandensein von kopierten Informationen in den Speicherblöcken (bj, bk) des schnelleren Niveaus (i) anzeigt,
daß jede Tabelle (Tj, Tk) eines Speicherblocks (bj, bk) des schnelleren Niveaus (i) Eintragfelder (AP 1, . . . APx) enthält, um diejenigen seiner Seiten (p 1 . . . pz) zu identifizieren, welche kopierte Informationen aus dem Speicherblock (Bp) des weniger schnellen Niveaus (i + 1) enthalten, sowie Eintragfelder (CE) enthält, um für jede Seite (P 1, . . . Px) des Speicherblocks (Bp) des weniger schnellen Niveaus (i + 1) einen Zählwert dieser Informationen auf dem laufenden zu halten und der Tabelle (Tp) dieses Speicherblocks (Bp) jedes Erreichen des Zählwertes Null bei jedem Zählwert anzuzeigen,
und daß bei jeder Anforderung eines Lese- und Schreibvorgangs in dem Speicherblock (Bp) des weniger schnellen Niveaus (i + 1) der Leit-Prozessor (PBp) dieses Speicherblocks (Bp) nach Befragung seiner Tabelle (Tp) jede selektive Berichtigung der Daten der von der Anforderung betroffenen Seite (P 1, . . . Px) sowohl vor der als auch gleichzeitig mit der Erfüllung der Anforderung sowohl im zugehörigen Speicherblock (Bp) als auch in den Speicherblöcken (bj, bk) des schnelleren Niveaus (i) durchführen kann.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß in jeder Tabelle (Tj, Tk) des schnelleren Niveaus (i) jeder Seite (p 1 . . . pz) des Speicherblocks (bj, bk) ein Gültigkeitsindex (V) zugeordnet ist und durch den zugehörigen Leit-Prozessor (Pbj, Pbk) auf dem laufenden gehalten wird, und daß Einrichtungen ("-") vorgesehen sind, um den Zählerstand der dieser Seite zugehörigen Informationen (CE) um eine Einheit zu verringern, wenn der Gültigkeitsindex (V) von dem Leit-Prozessor (Pbj, Pbk) auf Ungültigkeit umgeschaltet wird.
3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß in jeder Tabelle (Tj, Tk) des schnelleren Niveaus (i) ein Index (M), der die örtliche Modifizierung einer Information anzeigt, wenigstens jeder Seite (p 1, . . . pz) des zugehörigen Speicherblocks (bj, bk) zugeordnet ist und durch den Leit-Prozessor (Pbj, Pbk) auf dem laufenden gehalten wird, und daß der Leit-Prozessor (Pbj, Pbk) Einrichtungen enthält, durch die bei jedem Berichtigungsbefehl, der von dem Leit- Prozessor (Pbj, Pbk) empfangen wird, durch die Befragung dieses Index (M) gewährleistet wird, daß nur die Daten betroffen sind, deren Indizes (V, M) gleichzeitig die Gültigkeit und die Modifizierung markieren, und daß dieser Index (M) dann auf einen Wert umgeschaltet wird, der die Nichtmodifizierung der Information anzeigt.
4. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß in jeder Tabelle (Tj, Tk) des schnelleren Niveaus (i) ein vom Leit-Prozessor (Pbj, Pbk) verwalteter Index (X) vorhanden ist, der jeder Seite (p 1, . . . pz) zugeordnet ist und anzeigt, ob deren Informationen unter einer Bedingung erhalten worden sind, die den Zugang für andere Speicherblöcke (bj, bk) des schnelleren Niveaus (i) ausschließt, und daß Einrichtungen vorgesehen sind, um bei einer Modifizierung einer Information beim Vorhandensein dieses Ausschließungsindex (X) zu gewährleisten, daß ein Befehl für die Verhinderung jedes Kopierens dieser Information in jedem anderen Block (bj, bk) des schnelleren Niveaus (i) abgegeben wird, wobei dieser Index (X) bei jedem vom Leit- Prozessor (Pbj, Pbk) empfangenen Berichtigungsbefehl auf einen Wert zurückgebracht wird, der die Nichtausschließung markiert.
DE19772710477 1976-03-10 1977-03-10 Anordnung zur kohaerenten leitung des informationsaustauschs zwischen zwei aneinanderstossenden niveaus einer speicherhierarchie Granted DE2710477A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR7606879A FR2344094A1 (fr) 1976-03-10 1976-03-10 Systeme de gestion coherente des echanges entre deux niveaux contigus d'une hierarchie de memoires

Publications (2)

Publication Number Publication Date
DE2710477A1 DE2710477A1 (de) 1977-09-15
DE2710477C2 true DE2710477C2 (de) 1988-12-01

Family

ID=9170234

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772710477 Granted DE2710477A1 (de) 1976-03-10 1977-03-10 Anordnung zur kohaerenten leitung des informationsaustauschs zwischen zwei aneinanderstossenden niveaus einer speicherhierarchie

Country Status (3)

Country Link
US (1) US4173781A (de)
DE (1) DE2710477A1 (de)
FR (1) FR2344094A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH048824B2 (de) * 1979-01-09 1992-02-18
US4484262A (en) * 1979-01-09 1984-11-20 Sullivan Herbert W Shared memory computer method and apparatus
JPS5680872A (en) * 1979-12-06 1981-07-02 Fujitsu Ltd Buffer memory control system
EP0051745B1 (de) * 1980-11-10 1988-01-27 International Business Machines Corporation Pufferspeicherhierarchie für ein Multiprozessorsystem
US4823259A (en) * 1984-06-29 1989-04-18 International Business Machines Corporation High speed buffer store arrangement for quick wide transfer of data
US4730249A (en) * 1986-01-16 1988-03-08 International Business Machines Corporation Method to operate on large segments of data in a virtual memory data processing system
US4785395A (en) * 1986-06-27 1988-11-15 Honeywell Bull Inc. Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US5034885A (en) * 1988-03-15 1991-07-23 Kabushiki Kaisha Toshiba Cache memory device with fast data-write capacity
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
US5689679A (en) * 1993-04-28 1997-11-18 Digital Equipment Corporation Memory system and method for selective multi-level caching using a cache level code
US6047357A (en) * 1995-01-27 2000-04-04 Digital Equipment Corporation High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy
US7281092B2 (en) * 2005-06-02 2007-10-09 International Business Machines Corporation System and method of managing cache hierarchies with adaptive mechanisms

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3581291A (en) * 1968-10-31 1971-05-25 Hitachi Ltd Memory control system in multiprocessing system
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3771137A (en) * 1971-09-10 1973-11-06 Ibm Memory control in a multipurpose system utilizing a broadcast
US3820078A (en) * 1972-10-05 1974-06-25 Honeywell Inf Systems Multi-level storage system having a buffer store with variable mapping modes
US3911401A (en) * 1973-06-04 1975-10-07 Ibm Hierarchial memory/storage system for an electronic computer
US3938097A (en) * 1974-04-01 1976-02-10 Xerox Corporation Memory and buffer arrangement for digital computers
FR2308164A1 (fr) * 1975-04-17 1976-11-12 Cii Procede et moyens pour une gestion coherente des informations dans une hierarchie de memoires
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback

Also Published As

Publication number Publication date
FR2344094B1 (de) 1978-12-08
DE2710477A1 (de) 1977-09-15
FR2344094A1 (fr) 1977-10-07
US4173781A (en) 1979-11-06

Similar Documents

Publication Publication Date Title
DE3131341C2 (de)
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE3803759C2 (de)
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE2710477C2 (de)
DE2856715C3 (de) Verfahren zum Durchführen einer Pufferspeicher-Koinzidenz in einem Mehrprozessorsystem
DE2817431C2 (de) Speichereinrichtung mit auf Durchspeichern(store thru) beruhender Speicherhierarchie mit Teilspeicherung
DE2241257A1 (de) Datenverarbeitende anlage
DE2226382A1 (de) Datenverarbeitungsanlage
DE2515696A1 (de) Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE2640357A1 (de) Wortgruppenprioritaetsanordnung
DE1801620A1 (de) Verfahren und Anordnung zur Adressierung eines Speichers in einer Datenverarbeitungsanlage
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
CH670715A5 (de)
CH495584A (de) Datenverarbeitungsanlage
DE1774212B2 (de) En 20417 12.08.67 " 37132 bez: datenverarbeitungsanlage
DE2750126B2 (de)
DE2947115A1 (de) Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem
DE4005319C2 (de) Verfahren und Anordnung zur Aufrechterhaltung der Datenkonsistenz in einem Multiprozessorsystem mit privaten Cachespeichern

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: PRINZ, E., DIPL.-ING. LEISER, G., DIPL.-ING., PAT.

D2 Grant after examination
8364 No opposition during term of opposition