DE2710477A1 - Anordnung zur kohaerenten leitung des informationsaustauschs zwischen zwei aneinanderstossenden niveaus einer speicherhierarchie - Google Patents

Anordnung zur kohaerenten leitung des informationsaustauschs zwischen zwei aneinanderstossenden niveaus einer speicherhierarchie

Info

Publication number
DE2710477A1
DE2710477A1 DE19772710477 DE2710477A DE2710477A1 DE 2710477 A1 DE2710477 A1 DE 2710477A1 DE 19772710477 DE19772710477 DE 19772710477 DE 2710477 A DE2710477 A DE 2710477A DE 2710477 A1 DE2710477 A1 DE 2710477A1
Authority
DE
Germany
Prior art keywords
block
level
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.)
Granted
Application number
DE19772710477
Other languages
English (en)
Other versions
DE2710477C2 (de
Inventor
Lucien 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

Patentanwälte
Dtpl.-Ing. Opl-Chem. Dipl.-Ing. 2710477
E. Prinz - Dr. G. Hauser - G. Leiser Ernsbergerstrasse 19
8 München 60
9. März 1977
COMPAGNIE INTERNATIONALE POUR I1INPORMATIQUe CII- HONEYWELL BULL
94, Avenue Gambetta
PARIS (20) / Frankreich
Unser Zeichen: C 3151
Anordnung zur kohärenten Leitung des Informationsaustauschs zwischen zwei aneinanderstoßenden Niveaus einer Speicherhierarchie
Die Erfindung betrifft die Leitung der Informationsübertragungen innerhalb einer Speioherhierarchie und insbesondere zwischen zwei aneinanderstoßenden Niveaus, von denen das schnellere Niveau von Befehle-Prozessoren benutzt wird, 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 Speieherhierarchien in den Datenverarbeitungsanlagen ist allgemein üblich, weil man dadurch über 709837/0972
Lei/Gl
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 Leitung 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 nioht ausschließlichen Zugang zu modifizierbaren Informationen hat. Eine Inkohärenz kann sich ergeben, wenn Kopien der gleiohen Ursprungsinformation in mehreren 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.
709837/0972
Nach der üblichen Terminologie bezeichnet man als "Seite" die kleinste Informationsmengen 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 PR-OS 75 12 014 ist ein Verfahren zur kohärenten Leitung der Informationen in einer Speieherhierarchie beschrieben, das sich allgemein dadurch kennzeichnet, daß jeder Leit-Prozessor eines Blocks des schnelleren Niveaus, der mit einer bestimmten Anzahl von Blöcken 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 daß 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
709837/0972
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-Pcozessors 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
709837/0972
zwischen diesen beiden Niveaus die strikteste Kohärenz aufrecht erhalten v/erden.
Bei dem in der zuvor erwähnten französischen Offenlegungsschrift 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 Leitung 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 V/eise 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 Wirkungsgrads, die größer als oft erwünscht ist, weil jede Rückführung von Informationen eine Zugriffszeit zu dem Blook 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
709837/0972
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; öelbst 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 die Schaffung einer Anordnung zur kohärenten Leitung des Informationsaustauschs, welche die zuvor angegebenen Nachteile des bekannten Verfahrens nioht aufweist, ohne daß der anzuwendende Schaltungsaufwand übermäßig zunimmt.
Sie erfindungsgemäße Anordnung kennzeichnet sich im wesentlichen dadurch, daß auf dem weniger schnellen Niveau dem Leit-Prozessor jedes Blocks eine Tabelle zugeordnet ist, die vorzugsweise in einer schnellen Technologie ausgeführt ist und ebenso viele Register enthält, wie Seiten oder Abschnitte des geleiteten Speicherblocks vorhanden sind, wobei jedes Register der Tabelle ebenso viele Stellen enthält, wie Blöcke des schnelleren Niveaus von dem Block des weniger schnellen Niveaus bedient werden, sowie Einrichtungen, 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, und daß auf dem schnelleren Niveau jedem Leit- und/oder Befehls-Prozessor und somit jedem Speicherblock dieses Niveaus eine Tabelle
709837/0972
40
zugeordnet ist, 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, 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 Leitung der Tabellen hinzugefügt.
Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung von Ausführungsbeispielen der Erfindung anhand der Zeichnung. In der Zeichnung zeigen:
Fig. 1 eine schematische Barstellung 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
709837/0972
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 Mehrfaohverbindung, wie sie bei BUS zwischen den Niveaus (i+2) und (i+1) einerseits und den Niveaus (i+1) und (i) andrerseits dargestellt ist.
Io Niveau (i+1) ist nur ein Speicherblock Bp und der zugeordnete Leit-Prozessor PBp dargestellt. Im Niveau (i) sind zwei Speieherblöcke bj und bk und die jeweils zugeordneten Leit-Prozessoren Pb;} 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 χ Seiten P1 bis Px, von denen jede Seite ihrerseits aus η Fragmenten besteht. Sie Blöcke bj und bk enthalten jeweils ζ Seiten p1 bis pz, und jede dieser Seiten besteht aus q Fragmenten. Es ist jedooh nicht unbedingt notwendig, daß die Blöcke bj und bk die gleiche Seitenzahl mit der gleichen individuellen Kapazität haben.
709837/0972
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 χ Register mit den Adressen AP1 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 b1 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 b1 bis bm jeder Zeile der Tabelle kann ein Bit des Wertes "1" oder des Wertes "O" 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 b1 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 b1 bis bm unter der Steuerung durch den leit-Prozeesor 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 b1 bis bm des Schreib-Lese-Registers ELTp ist eine Oder-Schaltung OU zugeordnet. Bei jeder Befragung einer Zeile der Tabelle wird somit ein
709837/0972
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-Sohaltung aktiviert ist, oder daß keine solohen Auszüge vorhanden sind, wenn der Ausgang O der Oder-Schaltung aktiviert ist.
Da in dieser Tabelle die Information "1" in jeder der Zellen b1 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 Blook 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ürlich jede Stelle von b1 bis bm eine Kapazität von ζ Bits haben, wenn mit ζ die Anzahl der Seiten jedes des Blöcke b1 bis bm des schnelleren Niveaus ist, die im Informationsaustausch mit dem Blook 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.
709837/0972
Das Lesen und Schreiben im Speieherblock Bp erfolgt in üblicher Weise durch die Steuerung des Adressenregisters RA. und des Schreib-Lese-Registers REL durch den Leit-Prozessor PBp.
Io schnelleren Niveau (i) sind zwei Speieherblöcke bj und bk und ihre Leit-Prozessoren Pb;) bzw. Pbk dargestellt, von denen angenommen wird, daß sie durch Befehls-Prozessoren P,i 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öoke 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 ρ von dem Leit-Prozessor des Blocks "ungültig" gemacht wird (entweder aufgrund einer örtlichen Entscheidung oder aufgrund eines vom weniger sobnellen Niveau stammenden Befehls). Man findet darin ferner ein Indexbit H, das normalerweise im Zustand "O" 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 den 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. 709837/0972
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ärenzprobletos 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 Blockdes schnelleren Niveaus nur dann ausgeführt, wenn der Gültigkeitsindex den Vert "O" 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).
709837/0972
Die Indizes V, H und X sind datier jeder Seite ρ eines Blocks des schnelleren Niveaus in der dem Leit-Frozessor dieses Blocks zugeordneten Tabelle von Zustandswörtern hinzuzufügen, damit bei einer Befragung dieser Tabelle unter der Adresse der Kummer 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 Kiveaus 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 AP1 bis APx, die Anzahl CE der
709837/0972
Auszüge aus dieser Seite, die in dem Blook vorhanden sind, and ebenso viele Stellen p1 bis pz, wie es Seiten des betreffenden Blocks des schnelleren Niveaus gibt, an denen eine Adresse ρ und eine Markierung (.) für das Vorhandensein βίηθΒ 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"ρ empfangen, um den Inhalt einer auf diese Weise ausgewählten Zeile in das Sohleib-Lese-Register βΓ einzubringen.
DaB Sonreib-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 (0) 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 Blook 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
709837/0972
At
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 Sehreib-Lese-Registers ReI dos Blocks b gesteuert. : l
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 CE 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 ρ der Seite des Blocks b in dieser Zeile, und er ordnet ihm einen Index V=O, einen Index M=O und einen Index X zu, der, je naoh 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 ρ 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 gleiohe gilt für jede Information, die wieder in dem weniger schnellen Niveau kopiert wird. Venn durch die Abwärtszählung der Zählerstand CE auf Null gebracht wird, verursacht die Erregung des Ausgangs(0) des Decodierers im 709837/0972
Prozessor eine Abwurf-Signalgabe, die für den Block Bp des weniger schnellen Niveau? 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 H gezeigt hat« daß die Information modifiziert worden ist· Falls erforderlich,: wird dann runter der Index X auJT 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 Abwürfe eines Blocks b des schnelleren Niveaus wird von dem leit-Prozessor PBp verarbeitet, davit die Anwesenheits-Markierung an der Stelle des Adressenregisters AF, 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
709837/0972
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 Adresse 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 Figuren 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 Figuren 2 und 3 und die Indizes V und M sowie der Index X für diejenige von Fig. Nur die Modalität von Fig. 5 benutzt die drei Indizes V, M und X.
709837/0972
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 Infornationsgruppe 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ösoht" 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ötigt, fordert er sie wieder vom Block Bp an, und er erwirbt somit die modifizierten Informationen, die im Block Bp'teufs 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 hatte. Er hat diese Markierung bei der Operation des Diagramms IV wieder eingeschrieben, ohne den Blook Bj zu "entleeren".
Fig. 3 zeigt die Abänderung des Vorgangs, wenn im Block Bp die Berichtigung, durch die die modifizierten Daten aufs 709837/0972
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 Block 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
709837/0972
a*
auf den Wert M1" 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 bestehen 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 erfolgt, 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 den Wert "1" sind, wird die Datengruppe der gleichen Adresse Ap im Block bk ungültig ge-
709837/0972
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 "O" 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 (Diagramai 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 aus-
. geführt, durch den der Block des weniger schnellen Niveaus aufs laufende gebracht wird;
709837/0972
- wenn ein von einem Prozessor abgegebener Schreibbefehl eine Information betrifft, die in seinem Speicherblock nioht 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öoken vorhanden ist, wird ein Befehl zur Entleerung dieser anderen Blöcke ausgeführt.
Falls erwünscht, kann in dem weniger schnellen Niveau der Index H nicht global einer Seite ρ 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.
709837/0972

Claims (3)

  1. Patentanwälte
    DipL-Ing. Dipl-Chem. OpL-Ing. 2 7 Ί O A 7 7
    E. Prinz - Dr. G. Hauser - G. Leiser
    Ernsbergerstrasse 19
    8 München 60
    9. März 1977
    COMPAGNIE INTERNATIONALE POUR L1INPORMATIQUE CII- HONEYWELL BULL
    94» Avenue Gambetta
    PARIS (20) / Frankreich
    Unser Zeichen: C 3131
    Patentansprüche
    (iJAnordnung zur kohärenten Leitung dee Informationsaustauschs zwischen zwei aneinanderstoßenden Niveaus einer Speicherhierarchie, von denen das eine Niveau schneller als das andere Niveau ist und jedes Niveau in Speicherblöeke unterteilt ist, von denen jeder durch einen Leit-Prozessor geleitet wird, dem wenigstens eine auf dem laufenden gehaltene Tabelle von Zustandswörtem zugeordnet ist, die von dem Prozessor bei jeder Lese- und Schreib-Operation befragt wird, wobei jeder Block eines Niveaus Informationen mit mehreren Blöcken des anschließenden schnelleren Niveaus austauscht, dadurch gekennzeichnet, daß jede Tabelle eines Blocks des weniger schnellen Niveaus Einrichtungen enthält, um für jede Seite dieses Blocks und für jeden davon bedienten Block des schnelleren Niveaus eine Markierung auf dem laufenden zu halten, die das Vorhandensein von kopierten
    709837/0972 Lei/Gl
    ORIGINAL INSPECTED
    Informationen in den Blöcken des schnelleren Niveaus anzeigt, und daß jede Blocktabelle des schnelleren Niveaus Einrichtungen enthält, um die Seiten des zugehörigen Blocks zu identifizieren, welche kopierte Informationen des Blocks des weniger schnellen Niveaus enthalten, sowie Einrichtungen, um für jede Seite des Blocks des weniger schnellen Niveaus die Zählung dieser Informationen auf dem laufenden zu halten und der Tabelle des Blocks des weniger schnellen Niveaus jedes Erreichen des Zählerstandes Null bei der jeder Seite dieses Blocks des weniger schnellen Niveaus zugeordneten Zählung anzuzeigen, wodurch bei jeder Anforderung eines Lese- und Schreibvorgangs in dem Block des weniger schnellen Niveaus der Leit-Prozessor dieses Blocks nach Befragung seiner Tabelle jede selektive Berichtigung der Daten der von der Anforderung betroffenen Seite sowohl vor der als auch gleichzeitig mit der Erfüllung der Anforderung sowohl im Block des weniger schnellen Niveaus als auch in den Blöcken des schnelleren Niveaus befehlen kann.
  2. 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß in jeder Blocktabelle des schnelleren Niveaus jeder Seite des Blocks ein Gültigkeitsindex zugeordnet ist und durch den zugehörigen Leit-Prozessor auf dem laufenden gehalten wird, und daß Einrichtungen vorgesehen sind, um den Zählerstand der dieser Seite zugehörigen Informationen um eine Einheit zu verringern, wenn der Gültigkeitsindex von dem Prozessor auf Ungültigkeit umgeschaltet wird.
  3. 3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß in jeder Blocktabelle des schnelleren Niveaus ein Index, der die örtliche Modifizierung einer Information anzeigt,
    709837/0972
    wenigstens jeder Seite des Blocks zugeordnet ist und durch den Leit-Prozessor auf dem laufenden gehalten wird, und daß Einrichtungen vorgesehen sind, die gewährleisten, daß bei jedem Berichtigungsbefehl, der von dem Prozessor empfangen wird, die Befragung dieses Index gewährleistet, daß nur die Daten betroffen sind, deren Indizes gleichzeitig die Gültigkeit und die Modifizierung markieren, und daß dieser Index dann auf einen Wert umgeschaltet wird, der die Nichtmodifizierung der Information anzeigt.
    4* Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß in jeder Blocktabelle des schnelleren Niveaus ein vom Prozessor geleiteter Index vorhanden ist, der jeder Seite zugeordnet ist, um anzuzeigen, ob deren Informationen unter einer Bedingung erhalten worden sind, die den Zugang für andere Blöcke des schnelleren Niveaus ausschließt, und daß Einrichtungen vorgesehen sind, um bei einer Modifizierung einer Information beim Vorhandensein dieses Ausschließungsindex zu gewährleisten, daß ein Befehl für die Verhinderung jedes Kopierens dieser Information in jedem anderen Block des schnelleren Niveaus abgegeben wird, wobei dieser Index bei jedem vom Prozessor empfangenen Berichtigungsbefehl auf einen Wert zurückgebracht wird, der die Nichtausschließung markiert.
    709837/0972
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 true DE2710477A1 (de) 1977-09-15
DE2710477C2 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
US4484262A (en) * 1979-01-09 1984-11-20 Sullivan Herbert W Shared memory computer method and apparatus
JPH048824B2 (de) * 1979-01-09 1992-02-18
JPS5680872A (en) * 1979-12-06 1981-07-02 Fujitsu Ltd Buffer memory control system
DE3177181D1 (de) * 1980-11-10 1990-06-21 Ibm Anordnung zur erkennung und verarbeitung von synonymen in cache-speichern.
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2308164A1 (fr) * 1975-04-17 1976-11-12 Cii Procede et moyens pour une gestion coherente des informations dans une hierarchie de memoires

Family Cites Families (7)

* 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
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2308164A1 (fr) * 1975-04-17 1976-11-12 Cii Procede et moyens pour une gestion coherente des informations dans une hierarchie de memoires

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US-Communications of the ACM, Mai 1972, Vol. 15, Nr. 5, S. 308-318 *

Also Published As

Publication number Publication date
FR2344094A1 (fr) 1977-10-07
US4173781A (en) 1979-11-06
DE2710477C2 (de) 1988-12-01
FR2344094B1 (de) 1978-12-08

Similar Documents

Publication Publication Date Title
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE3803759C2 (de)
DE3131341C2 (de)
DE69635865T2 (de) Adressentransformation in einem cluster-computersystem
DE2241257C3 (de) Datenverarbeitende Anlage
DE2227882C2 (de) Virtuelle Speicheranordnung
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE2226382A1 (de) Datenverarbeitungsanlage
DE3932675A1 (de) Virtuelles maschinensystem
DE2710477C2 (de)
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE1774052B1 (de) Rechner
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE1801620A1 (de) Verfahren und Anordnung zur Adressierung eines Speichers in einer Datenverarbeitungsanlage
DE2551740A1 (de) Datenverarbeitungseinheit
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
CH670715A5 (de)
DE4238593A1 (de) Mehrprozessor-Computersystem
CH495584A (de) Datenverarbeitungsanlage
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers
DE19905541A1 (de) Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens
DE1774212B2 (de) En 20417 12.08.67 " 37132 bez: datenverarbeitungsanlage
DE2927451A1 (de) Verfahren und vorrichtung zur gewaehrleistung der informationskohaerenz zwischen den vorspeichern und weiteren speichern eines informationsverarbeitungssystems mit mehrfachverarbeitung

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