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 speicherhierarchieInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Description
Patentanwälte
Dtpl.-Ing. Opl-Chem. Dipl.-Ing. 2710477
8 München 60
9. März 1977
COMPAGNIE INTERNATIONALE POUR I1INPORMATIQUe
CII- HONEYWELL BULL
94, Avenue Gambetta
PARIS (20) / Frankreich
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
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
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)
- PatentanwälteDipL-Ing. Dipl-Chem. OpL-Ing. 2 7 Ί O A 7 7E. Prinz - Dr. G. Hauser - G. LeiserErnsbergerstrasse 198 München 609. März 1977COMPAGNIE INTERNATIONALE POUR L1INPORMATIQUE CII- HONEYWELL BULL94» Avenue Gambetta
PARIS (20) / FrankreichUnser Zeichen: C 3131Patentansprü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 kopierten709837/0972 Lei/GlORIGINAL INSPECTEDInformationen 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. 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. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß in jeder Blocktabelle des schnelleren Niveaus ein Index, der die örtliche Modifizierung einer Information anzeigt,709837/0972wenigstens 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
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)
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)
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)
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 |
-
1976
- 1976-03-10 FR FR7606879A patent/FR2344094A1/fr active Granted
-
1977
- 1977-03-10 DE DE19772710477 patent/DE2710477A1/de active Granted
- 1977-03-10 US US05/776,359 patent/US4173781A/en not_active Expired - Lifetime
Patent Citations (1)
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)
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 |