DE3621321A1 - Cache-speicher- bzw. multiprozessor-system und betriebsverfahren - Google Patents
Cache-speicher- bzw. multiprozessor-system und betriebsverfahrenInfo
- Publication number
- DE3621321A1 DE3621321A1 DE19863621321 DE3621321A DE3621321A1 DE 3621321 A1 DE3621321 A1 DE 3621321A1 DE 19863621321 DE19863621321 DE 19863621321 DE 3621321 A DE3621321 A DE 3621321A DE 3621321 A1 DE3621321 A1 DE 3621321A1
- Authority
- DE
- Germany
- Prior art keywords
- cache memory
- memory
- cache
- devices
- bus
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die Erfindung betrifft ein hierarchisch gegliedertes
Cache-Speichersystem, ein Multiprozessor-Rechnersystem
mit Cache-Speichereinrichtungen bzw. ein Verfahren zum
Arbeiten mit einem Cache-Speichersystem in einem Multiprozessor-
bzw. Mikroprozessor-System.
Im Verlauf der letzten Jahre wurden viele Verfahren
entwickelt, um Prozessoren und Speichereinheiten eines
Systems von eng gekoppelten Prozessoren miteinander
zu verbinden. Eine derartige Lösung bestand darin,
eine Gruppe von Prozessoren auf einer Seite des Systems
und eine Gruppe von Speichern auf der anderen
Seite des Systems zu organisieren und ein zentrales
Schaltnetzwerk zum Verbinden der Prozessoren mit den
Speichern vorzusehen. Geräte mit gemeinsam benutztem
Adressenraum, bei denen die Speicher unter den Prozessoren
unter Verwendung eines hierarchisch gegliederten
Verbindungsnetzwerks verteilt werden, wurden ebenfalls
gebaut bzw. vorgeschlagen. Da die Schaltnetzwerke zu
einer zusätzlichen Verzögerung führen und der Hauptspeicher
häufig nicht schnell genug ist, um mit den
Prozessoren Schritt zu halten, wird es erforderlich,
jeden der Prozessoren durch einen diesem Prozessor
individuell zugeordneten, gewissermaßen privaten
Cache-Speicher zu ergänzen, um ein Laufen der Prozessoren
mit voller Geschwindigkeit zu ermöglichen. Der
Zusatz eines solchen privaten Cache-Speichers steigert
andererseits die Probleme der Cache-Speicher-Kohärenz,
die bei einem allgemeinen Schaltnetzwerk sehr schwierig
zu lösen sind. Tatsächlich führt in den bisher
vorgeschlagenen Systemen das Aufrechterhalten der Kohärenz
zwischen den im Hauptspeicher und den in den
Cache-Speichern gespeicherten Daten häufig zu Engpässen.
Ein anderes Verfahren zum Verbinden einer Gruppe von
Prozessoren eines Multiprozessorsystems besteht in
der Verbindung über einen gemeinsam benutzten Bus.
Da der gesamte Datenverkehr zwischen den Cache-
Speichern und dem Hauptspeicher über den gemeinsam
benutzten Bus läuft, kann jeder Cache-Speicher bei
einem solchen System sicherstellen, daß er nur gültige
bzw. auf dem neuesten Stand befindliche Kopien der
Daten der betreffenden Hauptspeicherbereiche enthält,
und zwar durch Überwachen des Busses auf sämtliche
Übertragungen, welche dazu führen könnten, daß die
gespeicherten Daten nicht mehr gültig bzw. überholt
sind. Während man bei gemeinsam benutzten Bussen häufig
eine nicht angemessene Bandbreite bemängelt hat,
führt andererseits die Verwendung von großen, privaten
Cache-Speichern zu einer drastischen Reduzierung der
erforderlichen Bandbreite, während sich gleichzeitig
für die Prozessoren eine kurze effektive Zugriffszeit
ergibt. Außerdem ist der zusätzliche Busverkehr,
der sich aufgrund der Kohärenz-Algorithmen ergibt,
vernachlässigbar, so daß praktisch die volle Bandbreite
des Busses für die Handhabung echter Daten verfügbar
ist. Wie bei Einzelprozessoren können die privaten
Cache-Speicher zum Write-Through-Typ oder zum
Write-Deferred-Typ gehören, wobei die Kohärenz-Schemen
bzw. -Kriterien dem Cache-Speichertyp angepasst sind.
Da die Bandbreite des Busses bei der Erweiterung dieser
Systeme den grundsätzlichen Grenzwert bestimmt,
werden im allgemeinen Write-Deferred-Schemen bevorzugt.
Andererseits sind die Write-Through-Schemen einfacher
zu realisieren.
Kohärenz-Probleme zwischen verschiedenen privaten
Cache-Speichern in einem Multiprozessor-System entstehen
dann, wenn mehrere private Cache-Speicher Kopien
der Inhalte eines bestimmten Speicherbereichs bzw.
einer bestimmten Speicherstelle enthalten. Offensichlich
ist es wesentlich, daß diese Kopien identisch
sind. Wenn ein Prozessor eine Kopie der Daten eines
Speicherplatzes in seinem Cache-Speicher modifiziert,
muß diese Änderung entweder an den Hauptspeicher oder
an allen anderen privaten Cache-Speicher weitergegeben
werden, die eine Kopie dieses Speicherbereichs enthalten.
Eine andere Möglichkeit besteht darin, den
Inhalt aller anderen Cache-Speicher für ungültig zu
erklären. In der Praxis ist es gewöhnlich erforderlich,
das Verfahren des Ungültigmachens (invalidation)
anzuwenden, da hierdurch eine Anzahl von Ablaufproblemen
überwunden wird, die sich ergeben können,
wenn das Aufdatieren der Kopien des Speicherbereichs
in anderen Cache-Speichern versucht wird. Bei Umschaltverfahren
ohne den Einsatz von gemeinsam benutzten
Bussen kann der Datenverkehr aufgrund der Übermittlung
von Ungültigkeitsbefehlen ähnlich groß werden. Bei
gemeinsam benutzten Bussen werden die entsprechenden
Botschaften bzw. Befehle automatisch erzeugt.
Cache-Speicheranwendungen vom Write-Deferred-Typ wurden
bei der Entwicklung von Einzelprozessoren erfolgreich
angewandt, nachdem man festgestellt hatte, daß
der Datenverkehr zum Hauptspeicher beim Write-Deferred-
Betrieb deutlich kleiner ist als beim Write-Through-
Betrieb. In der Theorie wird der Datenverkehr mit dem
Hauptspeicher zu Null, wenn die Cache-Speicherkapazität
gegen Unendlich wächst. Die derzeit in der Praxis verwendeten
Cache-Speichergrößen ermöglichen es, den
Busverkehr in einem Multiprozessorsystem beim Arbeiten
im Write-Deferred-Betrieb um bis zu einer Größenordnung
gegenüber dem Write-Through-Betrieb zu verringern,
so daß potentiell die Möglichkeit besteht, die Anzahl
der Prozessoren in einem Multiprozessorsystem mit
gemeinsam benutztem Bus um eine Größenordnung oder mehr
zu erhöhen. Die Notwendigkeit, die Datenkohärenz aufrecht
zu erhalten, lässt die Situation jedoch komplizierter
werden, und gewöhnlich werden eine Reihe
von Ergänzungen gegenüber dem Grundschema für den
Write-Deferred-Betrieb benötigt. Dabei ergibt sich
letztlich ein komplizierteres System, bei dem der
Bus stärker benutzt wird als bei einem im reinen
Write-Deferred-Betrieb arbeitenden System, jedoch
immer noch wesentlich weniger (pro Prozessor) als
beim Arbeiten im Write-Through-Betrieb.
Die Einzelheiten und Besonderheiten des Write-Through-
Betriebes und des Write-Deferred-Betriebes werden weiterhin
in der Detailbeschreibung noch näher erläutert,
wobei insbesondere auf das sogenannte Goodman-System
eingegangen wird.
Wie im Falle des Write-Through-Cache-Speicherbetriebes
überwachen in dem Goodman-System alle Cache-Speicher
den Bus auf Schreibbefehle, welche ihre eigenen Daten
betreffen und markieren diese Daten als ungültig,
wenn sie einen derartigen Schreibbefehl erkennen.
Nach der ersten Übertragung im Write-Through-Betrieb
wird einem Cache-Speicher garantiert, daß er die einzige
(gültige) Kopie eines Speicherbereichs enthält
und daß in diesem Bereich Schreiboperationen ausgeführt
werden können, ohne daß weitere Schreibbefehle
auf den gemeinsamen Bus gesendet würden. Der Cache-
Speicher muß jedoch den gemeinsamen Bus auf alle Lesebefehle
an Speicherplätze überwachen, deren Kopien
er verändert hat, da er nach einem solchen Lesebefehl
nicht länger über eine exklusive Kopie des
Speicherbereichs verfügt. Solange lediglich der erste
Schreibbefehl im Write-Through-Betrieb aufgetreten
ist, besteht die einzige Aktion, die für den Cache-
Speicher erforderlich ist, der die Schreiboperation
durchgeführt hatte, darin, zu vergessen, daß er eine
exklusive Kopie des Speicherbereichs enthielt. Wenn
zwei oder mehr Schreiboperationen von dem dem Cache-
Speicher zugeordneten Prozessor durchgeführt wurden,
dann enthält der Cache-Speicher die einzig gültige
Kopie und muß daher für ein Aufdatieren des Inhalts
des Hauptspeichers sorgen, ehe dieses auf einen Lesebefehl
eines anderen Cache-Speichers antwortet.
Es gibt mehrere bekannte Systeme für das Aufdatieren
des Hauptspeichers vor dem Antworten desselben auf
einen Lesebefehl (einen Datenabruf) durch die anderen
Cache-Speicher, um sicherzustellen, daß auf den Lesebefehl,
der das Aufdatieren ausgelöst hat, die neueste
Kopie des betreffenden Speicherbereichs ausgegeben
wird. Bei diesen Systemen ist es im allgemeinen erforderlich,
daß derjenige Cache-Speicher, welcher die
geänderte Kopie enthält, den Hauptspeicher daran hindert,
auf einen Lesebefehl zu antworten, ehe die geänderte
Kopie zum Hauptspeicher zurückgeliefert wurde.
Eine andere Möglichkeit besteht darin, eine spezielle
Busanforderung auszugeben, welche die Antwort vom
Hauptspeicher überläuft. Das erwähnte Goodman-System
kann ferner derart modifiziert werden, daß der anfängliche
Write-Through-Vorgang vermieden wird, wenn
beim ersten Zugriff auf die Daten bekannt ist, daß
keine anderen Kopien vorhanden sind. Es gibt einige
Ablaufbedingungen, die eine gleichzeitige Modifikation
von einander nicht überlappenden Teilen eines Blockes
durch unterschiedliche Prozessoren und die Realisierung
von Lese/Modifizier/Schreib-Verriegelungen erforderlich
machen. Die dabei auftretenden Probleme
sind jedoch bei sorgfältiger Auslegung lösbar.
Ein anderes bekanntes System, welches das Problem vermeidet,
daß ungültige Daten in den Hauptspeicher zurückgeliefert
werden, fügt jedem Block im Hauptspeicher
ein "checked-out"-Bit hinzu. Wenn nun ein privater
Cache-Speicher feststellt, daß er einen exklusiven Zugriff
zu einem Speicherbereich benötigt, dann liest
er den entsprechenden Speicherbereich des Hauptspeichers
mit einem Lesebefehl "exklusiver Zugriff" aus, wodurch
das "checked-out"-Bit gesetzt und das "Eigentum" des
Speicherbereichs an den privaten Cache-Speicher übertragen
wird. Andere Cache-Speicher, welche Kopien
der betreffenden Daten enthalten, markieren diese Kopien
als "ungültig", sobald sie den Lesebefehl "exklusiver
Zugriff" auf dem Bus erfassen. Bei dieser
Betriebsart wird also der einleitende Write-Through-
Vorgang des Goodman-Systems durch einen speziellen
Lesebefehl ersetzt. Während auf diese Weise die Notwendigkeit
für einen anfänglichen Write-Through-Vorgang
vermieden wird, ist der gesamte Datenverkehr, der
sich aufgrund dieser Arbeitsweise auf dem Bus ergibt,
mit demjenigen beim Goodman-System vergleichbar. Andererseits
bietet diese Betriebsweise geradlinige
Lösungen für die oben erwähnten Lese/Modifizier-
Schreib-Verriegelungsprobleme.
Trotz der erhöhten Komplexität ist jede der oben skizzierten
Write-Deferred-Lösungen im allgemeinen gegenüber
einem Write-Through-Betrieb der Cache-Speicher
zu bevorzugen. Die Reduzierung des Busverkehrs, die
sich bei Write-Deferred-Cache-Speichern ergibt, macht
derartige Cache-Speicher für ein Multiprozessorsystem
mit gemeinsam benutztem Bus sehr wünschenswert, selbst
wenn die Auslastung des Busses immer noch die Größe
dieser Rechner begrenzt.
Ausgehend vom Stande der Technik und den vorstehend
erläuterten Problemen liegt der Erfindung die Aufgabe
zugrunde, ein Cache-Speichersystem für ein
Multiprozessorsystem mit gemeinsam benutzten Buseinrichtungen
anzugeben. Diese Aufgabe wird durch das
hierarchisch gegliederte Cache-Speichersystem gemäß
Patentanspruch 1 gelöst.
Weiterhin liegt der Erfindung die Aufgabe zugrunde,
ein Cache-Speichersystem anzugeben, welches es gestattet,
eine Multiprozessor-Anlage in mehrer Multiprozessoren
aufzuteilen, die jeweils mehrere hierarchisch
organisierte, gemeinsam benutzte Busse umfassen.
Diese Aufgabe wird gemäß dem Patentanspruch 12
gelöst.
Dabei wird insbesondere angestrebt, daß die hierarchisch
organisierten, gemeinsam benutzten Busse insgesamt
mit einem möglichst geringen Datenverkehr belastet
werden. In diesem Zusammenhang wird zusätzlich
angestrebt, daß sowohl mit Write-Through-Cache-Speichern
als auch mit Write-Deferred-Cache-Speichern
gearbeitet werden kann.
Gemäß einem bevorzugten Ausführungsbeispiel der Erfindung
umfasst ein Cache-Speichersystem für einen
Multiprozessor mit gemeinsam benutztem Bus mehrere
Prozessoren, von denen jeder seinen eigenen privaten
Cache-Speicher hat. Jeder private Cache-Speicher ist
dabei mit einem ersten Bus verbunden, mit dem auch
ein zweiter Cache-Speicher verbunden ist, der zu
einer höheren Ebene gehört. Der zweite Cache-Speicher
ist seinerseits entweder mit einem weiteren Bus und
mit einem Cache-Speicher einer noch höheren Ebene
verbunden oder über einen globalen bzw. übergeordneten
Bus mit dem Hauptsystemspeicher. Dabei besitzt jeder
Cache-Speicher einer höheren Ebene genügend Speicherplatz,
um eine Kopie jedes Speicherbereichs der Cache-
Speicher auf der unmittelbar darunter befindlichen
Ebene zu enthalten. Weiterhin enthält der Hauptspeicher
genügend Speicherplatz, um eine Kopie jedes Speicherbereichs
der Cache-Speicher der höchsten Ebene speichern
zu können. Das erfindungsgemäße Cache-Speicher-
System kann zum Aufrechterhalten der Datenkohärenz
im Write-Through-Betrieb oder im Write-Deferred-Betrieb
arbeiten. Ferner besteht bei einem erfindungsgemäßen
System die Möglichkeit, den Hauptspeicher durch Speicher
mit mehreren Ports bzw. Eingängen zu ersetzen.
Weitere Einzelheiten und Vorteile der Erfindung werden
nachstehend anhand von Zeichnungen noch näher erläutert
und/oder sind Gegenstand weiterer Ansprüche.
Es zeigen:
Fig. 1 ein Status-Diagramm eines Cache-Speicherbereichs
für einen Multiprozessor auf der
Basis von Write-Through-Cache-Speichern;
Fig. 2 ein Status-Diagramm für einen Cache-
Speicherbereich eines Multiprozessors,
der auf der Basis von Write-Deferred-
Cache-Speichern arbeitet;
Fig. 3 eine schematische Darstellung eines hierarchisch
gegliederten Multiprozessors mit
zwei Ebenen von Cache-Speichern und gemeinsam
benutzten Bussen;
Fig. 4 ein Status-Diagramm für einen Cache-Speicherbereich
einer zweiten Ebene beim
Arbeiten nach einem Multicache-Speicher-
Kohärenz-Algorithmus gemäß der Erfindung;
Fig. 5 eine schematische Darstellung eines
erweiterten Ausführungsbeispiels des
Multiprozessorsystems gemäß Fig. 1,
bei dem im Write-Through-Cache-Speicherbetrieb
gearbeitet wird;
Fig. 6 eine schematische Darstellung einer
weiteren abgewandelten Ausführungsform
des Multiprozessorsystems gemäß Fig. 1
mit einem hierarchisch gegliederten
Cache-Speichersystem, bei dem im Write-
Deferred-Cache-Speicherbetrieb gearbeitet
wird;
Fig. 7 eine schematische Darstellung eines
Multiprozessorsystems mit einem Speicher
mit zwei Ports;
Fig. 8 ein Status-Diagramm für ein Zwei-Port-
Speichersystem, welches im Multicache-
Speicher-Kohärenz-Betrieb gemäß der
Erfindung arbeitet;
Fig. 9 eine schematische Darstellung eines
Multiprozessors mit Speichern mit mehreren
Ports und einem hierarchisch gegliederten
Cache-Speichersystem gemäß
der Erfindung;
Fig. 10 eine schematische Darstellung eines
weiteren abgewandelten Ausführungsbeispiels
des Multiprozessorsystems
gemäß Fig. 5, und
Fig. 11 ein Status-Diagramm eines Cluster-
bzw. Gruppen-Adapters, welcher nach
einem Multicache-Speicher-Kohärenz-
Schema gemäß der Erfindung arbeitet.
Ehe nachstehend im einzelnen auf die Erfindung eingegangen
wird, soll zunächst anhand der Fig. 1 der Zeichnung
das eingangs bereits erwähnte Write-Through-Cache-
Speicher-Schema näher erläutert werden.
Bei einem Write-Through-Cache-Speicher-Schema bzw.
-System wird immer dann, wenn ein Prozessor neue Daten
in einen Speicherbereich seines zugeordneten Cache-
Speichers einschreibt, der Schreibbefehl über den gemeinsam
benutzten Bus an den Hauptspeicher weitergeleitet.
Wie aus dem in Fig. 1 gezeigten Zustandsdiagramm
für einen Cache-Speicherbereich eines Multiprozessorsystems
mit Write-Through-Cache-Speicherbetrieb
hervorgeht, überwachen alle anderen Cache-Speicher
des Systems den gemeinsam benutzten Bus auf Schreibbefehle.
Wenn irgendeiner der anderen Cache-Speicher
eine Kopie des Inhalts der durch den Schreibbefehl
aufgerufenen Speicherstelle enthält, dann wird diese
Kopie bei Feststellung des Schreibbefehls ungültig gemacht.
Wenn keiner der anderen Cache-Speicher diesen
Speicherplatz jemals wieder tatsächlich braucht, dann
führt das Kohärenzschema, d. h. die Notwendigkeit, eine
Übereinstimmung der Daten an der betreffenden Speicherstelle
im Hauptspeicher und in den diversen Cache-
Speichern aufrecht zu erhalten, nicht zu einem zusätzlichen
Datenaustausch über den Bus bzw. nicht zu einem
zusätzlichen Busverkehr. Wenn der betreffende Speicherplatz
zu einem späteren Zeitpunkt von ein oder mehreren
Prozessoren aufgerufen wird (und zwar in den Cache-
Speichern) dann führt dies dazu, daß eigens ein Zugriff
zum Hauptspeicher erfolgen muß, um dort die Daten
auszulesen. Simulationsversuche haben gezeigt,
daß diese besonderen Auslesevorgänge nicht sehr häufig
sind und sehr wenig zum zusätzlichen Busverkehr beitragen.
Da die Cache-Speicher im Write-Through-Betrieb
arbeiten, wird das Ausmaß des Verkehrs, d. h. der Datenübermittlung
auf den Bus, niemals kleiner sein als die
Summe aller von den Prozessoren erzeugten Speicher-
Schreibbefehle, welche typischerweise etwa 15 bis 20%
aller Zugriffe zum Hauptspeicher ausmachen. Der Write-
Through-Cache-Speicherbetrieb ist außerordentlich
effektiv, wenn eine begrenzte Parallelität (in der
Größenordnung von 20 Prozessoren mittlerer Geschwindigkeit)
gefordert wird und leicht zu verwirklichen.
Nachstehend soll nunmehr anhand der Fig. 2 eine spezielle
Form eines der eingangs erwähnten Write-Deferred-
Cache-Speichersysteme erläutert werden, bei denen eine
Kohärenz bzw. Übereinstimmung der in den Cache-Speichern
gespeicherten Daten aufrecht erhalten wird. In dem Aufsatz
"Verwendung eines Cache-Speichers zur Verringerung
des Verkehrs zwischen Prozessor und Hauptspeicher"
(Tenth International Symposium on Computer Architecture)
von Dr. James R. Goodman wird ein Cache-Speichersystem
(eingangs als "Goodman-System" bezeichnet) beschrieben,
welches anfänglich in einem Write-Through-Betrieb
für neu angenommene Daten arbeitet, um die anderen
Cache-Speicher (bzw. deren entsprechende Speicherstellen)
für den Fall einer lokalen Änderung der Daten in den
Zustand "ungültig" zu bringen. Wie das Zustandsdiagramm
gemäß Fig. 2 im einzelnen zeigt, wird beim Goodman-System
beim ersten Zugriff auf einen Hauptspeicherplatz der
Cache-Speicher entweder in den Zustand "gültig" gebracht,
wenn es sich um einen Lesebefehl handelt, oder in den
Zustand "reserviert", wenn es sich um einen Schreibbefehl
handelt. Wenn durch einen Prozessor ein Zugriff mit einem
Schreibbefehl erfolgt, dann wird ein Speicherplatz, der
sich schon im Zustand "gültig" befindet, in den Zustand
"reserviert" gebracht. Der Schreibbefehl, welcher den
Übergang in den Zustand "reserviert" bewirkt hat, wird
durch den Cache-Speicher hindurchgeleitet und auf den
gemeinsam benutzten Bus gegeben. Spätere Zugriffe des
Prozessors mit Schreibbefehlen zu dem betreffenden
Speicherplatz bringen diesen in einen besonderen Zustand,
der anzeigt, daß der Cache-Speicher, in dem
dieser Zustand vorliegt, die einzige korrekte Kopie
des betreffenden Speicherplatzes enthält. Dieser spezielle
Zustand wird als "schmutzig" (dirty) bezeichnet.
Nachdem vorstehend noch einmal ausführlich auf den relevanten
Stand der Technik eingegangen wurde, soll nachstehend
nunmehr die vorliegende Erfindung näher erläutert
werden.
Im einzelnen zeigt Fig. 3 ein vereinfachtes Ausführungsbeispiel
eines Multiprozessors 10 mit gemeinsamen
Buseinrichtungen, bei dem ein erfindungsgemäßes Cache-
Speichersystem verwirklicht ist, welches mehrere Cache-
Speicher umfasst, die gemäß einer hierarchischen Gliederung
geordnet sind. Unter hierarchisch ist dabei zu
verstehen, daß die einzelnen Cache-Speicher relativ
zueinander auf unterschiedlichen Niveaus liegen, wobei
die Cache-Speicher eines oder mehrerer Niveaus
über einen gemeinsam benutzten Bus mit einem Cache-
Speicher eines höheren Niveaus verbunden sind. Diese
Cache-Speicher auf dem höheren Niveau können ebenfalls
zusammen mit ein oder mehreren Cache-Speichern desselben
Niveaus entweder mit dem Hauptspeicher oder mit
einem Cache-Speicher eines noch höheren Niveaus verbunden
sein.
Bei dem Ausführungsbeispiel gemäß Fig. 3 sind Cache-
Speicher auf zwei Niveaus und zwei gemeinsam benutzte
Busse vorgesehen, wobei jedem Prozessor 12 ein Cache-
Speicher 14 zugeordnet ist und wobei jeder der Cache-
Speicher 14 mit einem ersten gemeinsam benutzten Bus 16
verbunden ist. Der Bus 16 ist außerdem mit einem
Cache-Speicher 18 eines zweiten, höheren Niveaus verbunden,
welcher seinerseits mit einem zweiten Bus 20
des höheren Niveaus verbunden ist, wobei der Bus 20
gemeinsam von allen Cache-Speichern 18 des zweiten
höheren Niveaus benutzt wird. Der Bus 20 verbindet die
Hauptspeichermodule 22 mit den zum zweiten Niveau bzw.
zu der zweiten Ebene gehörigen Cache-Speicher 18.
Fig. 3 zeigt also ein hierarchisch gegliedertes Cache-
Speichersystem, bei dem ein Bussystem für die den Prozessoren
individuell zugeordneten Cache-Speicher mit
mehreren zusätzlichen Ebenen für die Cache-Speicherung
verwirklicht ist. In der sich dabei ergebenden baumartigen
Struktur bilden die Cache-Speicher der jeweils
höheren Ebene die Verbindungsglieder zu niedrigeren
Zweigen des Baums. Die Cache-Speicher der höheren Ebene,
wie z. B. der Cache-Speicher 18, wirken wie Filter und
reduzieren damit den Umfang des Verkehrs bzw. Datenaustauschs
zu den oberen Ebenen des Baums. Die Cache-
Speicher einer höheren Ebene sorgen auch für die Kohärenzsteuerung
zwischen den einzelnen Ebenen, so daß
eine systemweite Adressierbarkeit möglich wird.
Da der größte Teil der Prozessorbeschleunigung durch
die Cache-Speicher 14 der unteren Ebene erreicht wird,
können die Cache-Speicher 18 der höheren Ebene langsamere,
dynamische Speicher mit wahlfreiem Zugriff
(DRAMs) und mit höherer Packungsdichte sein, die mit
den Speichern identisch sein können, die als Hauptspeichermodule 22
verwendet werden. Die mittlere Zugriffszeit
wird noch weiter verringert, da Schaltverzögerungen
auf einer höheren Ebene bei Treffern vermieden
werden (d. h. dann, wenn ein Zugriff zu einer
Speicherstelle bzw. einem Speicherbereich des Hauptspeichers
erfolgen soll, dessen Inhalt bereits im Cache-
Speicher des betreffenden Prozessors gespeichert ist).
Um aus den Cache-Speichern einer höheren Ebene einen
optimalen Nutzen zu ziehen, müssen diese groß sein,
und zwar um eine Größenordnung größer als sämtliche,
damit verbundenen Cache-Speicher der nächst niedrigeren
Ebene, welche diese Cache-Speicher speisen. Da die
Cache-Speicher der höheren Ebene DRAMs sein können,
stellt dies kein Problem dar. Die Cache-Speicher der
zweiten und höherer Ebenen (Speicher 18 beim Ausführungsbeispiel
gemäß Fig. 3) in dem hierarchisch gegliederten
System benötigen einige Erweiterungen, um eine
systemweite Multi-Cache-Speicher-Kohärenz aufrecht zu erhalten.
Die wichtigste Erweiterung besteht darin, daß
für jeden Speicherbereich, für den Kopien in den Cache-
Speichern des niedrigeren Niveaus vorhanden sind, auch
eine Kopie in dem Cache-Speicher höheren Niveaus vorhanden
ist. Wie das Zustandsdiagramm gemäß Fig. 4 zeigt,
wird dies bei dem betrachteten System dadurch erreicht,
daß immer dann das Signal "ungültig machen" an die
Cache-Speicher des niedrigeren Niveaus gegeben wird,
wenn der Inhalt eines Speicherbereichs aus dem zugeordneten
Cache-speicher der nächst höheren Ebene entfernt
wird. Da alle Kopien von Speicherplätzen bzw.
-bereichen der Cache-Speicher der unteren Ebene auch
in dem Cache-Speicher (den Cache-Speichern) der höheren
Ebene vorhanden sind, kann der Cache-Speicher der
höheren Ebene als Multicachespeicher-Kohärenz-Monitor
für alle Cache-Speicher der niedrigeren Ebene dienen,
die mit ihm verbunden sind.
Das Write-Deferred-Cache-Speicherschema, welches in
vorliegender Erfindung benutzt wird, ist dem Goodman-
System insofern ähnlich, als in beiden Systemen für
jeden Cache-Speicherbereich vier verschiedene Zustände
möglich sind. Die Cache-Speicher der höheren Ebene senden
jedoch gemäß der Erfindung dann, wenn es erforderlich
ist, die Multi-Cache-Speicher-Kohärenz aufrecht
zu erhalten, an die Cache-Speicher der niedrigeren Ebene
den Befehl, die betreffenden Daten ungültig zu machen
bzw. zu löschen (wegzuspülen/flush). Der Befehl, die Daten
ungültig zu machen, wird von den Cache-Speichern der
unteren Ebene ähnlich behandelt wie ein Schreibbefehl
auf dem Bus, während der Befehl, die Daten zu löschen,
ähnlich behandelt wird wie ein Lesebefehl auf dem Bus.
Die Multi-Cache-Speicher-Kohärenzkontrolle kann bei
einem hierarchisch gegliederten Multiprozessor gemäß
der Erfindung mit gemeinsam benutzten Buseinrichtungen
erreicht werden, indem man entweder Write-Through-Cache-
Speicher oder Write-Deferred-Cache-Speicher verwendet.
Wenn bei den im Write-Through-Betrieb arbeitenden Multi-
Cache-Speichersystem gemäß Fig. 5 ein Prozessor 12 einen
Schreibbefehl an den Hauptspeicher abgibt, dann
wird dieser Schreibbefehl nach oben durch die Hierarchie
von Cache-Speichern hindurchgefiltert und erscheint auf
jeder Ebene auf dem zugeordneten, gemeinsam benutzten
Bus. Beispielsweise gelangt ein Schreibbefehl vom Prozessor 12 b
von dem Cache-Speicher 14 b zum Bus 16 a und
von dort zum Cache-Speicher 18 a und schließlich auf
den Bus 20. Beim Ausführungsbeispiel stellt die horizontale
Linie 15 in den verschiedenen Speichereinheiten
eine gemeinsame Speicherstelle bzw. einen gemeinsamen
Speicherbereich dar. Für die Teile des Systems, mit
denen der Cache-Speicher 12 b direkt verbunden ist, erfolgt
das Ungültigmachen ebenso wie dies oben für den
Fall einer einzigen Ebene beschrieben wurde. Zusätzlich
wird jeder Cache-Speicher, der eine Kopie des betroffenen
Speicherbereichs 15 enthält (beispielsweise der
Cache-Speicher 14 c), diesen Speicherbereich einfach
ungültig machen. Für die Cache-Speicher auf höheren
Ebenen der Hierarchie bedingt das Vorhandensein eines
bestimmten Speicherbereichs, daß dort Kopien des Speicherbereichs
vorhanden sein können, welche auf Ebenen
direkt unterhalb des Cache-Speichers erhalten geblieben
sein könnten. Wenn beispielsweise der Cache-Speicher 18 c
auf der zweiten Ebene in Fig. 5 einen Schreibzugriff
auf dem Bus 20 feststellt, muß er nicht nur seinen
eigenen Speicher ungültig machen, sondern auch einen Befehl
zum Ungültigmachen an die mit ihm verbundenen
Cache-Speicher der unteren Ebene senden, die die Information
des betreffenden Speicherplatzes enthalten.
Bei dem Beispiel gemäß Fig. 5 werden die Signale zum
Ungültigmachen der Daten an die Cache-Speicher 14 g, 14 i
gesandt. Um das Ungültigmachen zu erreichen, wird ein
Befehl "Ungültigmachen" auf den Bus 16 c gegeben, und
dieser Befehl wird durch die Cache-Speicher 14 g, 14 h
und 14 i als eine Schreib-Transaktion für den betreffenden
Speicherplatz interpretiert. Die genannten
Cache-Speicher machen daraufhin, falls vorhanden, ihre
eigenen Kopien ungültig, ebenso als wenn der Befehl
"Ungültig machen" ein Schreibbefehl von irgendeinem
anderen Cache-Speicher auf dem gemeinsam benutzten Bus
wäre. Bei einem solchen System wird davon ausgegangen,
daß irgendwelche Kopien des Inhalts von Speicherstellen,
die auf den unteren Ebenen vorhanden sind, auch in den
zugeordneten Cache-Speichern auf den höheren Ebenen
vorhanden sind. Um dies zu garantieren, ist es erforderlich,
den Befehl "Ungültig machen" immer dann an
die Cache-Speicher der unteren Ebene zu senden, wenn
eine Speicherstelle auf einer höheren Ebene aufgrund
eines Fehlers ausgewechselt wird. Folglich ist es
wichtig, die Fehlerquote in den Cache-Speichern der
oberen Ebene niedrig zu halten, und diese Cache-Speicher
müssen groß sein, um dies zu erreichen.
Bei einem hierarchisch gegliederten Cache-Speichersystem
gemäß vorliegender Erfindung, bei dem Write-Deferred-
Cache-Speicher verwendet werden, ist die Operation zum
Ungültigmachen sehr ähnlich wie diejenige, die bei
Write-Through-Systemen verwendet wird. Bei einem hierarchisch
aufgebauten Write-Deferred-Cache-Speichersystem
dienen der Write-Through-Vorgang des Goodman-Systems
oder der Lesebefehl mit exklusivem Zugriff, bei dem
mit einem besonderen Bit im Hauptspeicher gearbeitet
wird, wie dies bei den anderen, eingangs angesprochenen
Systemen der Fall ist, dazu, das Ungültigmachen in derselben
Weise einzuleiten wie die Schreibbefehle bei
einem ständig im Write-Through-Betrieb arbeitenden
Cache-Speichersystem. Speziell bei der Ausführungsform
der vorliegenden Erfindung, bei der mit einem hierarchisch
gegliederten Write-Deferred-Cache-Speichersystem ähnlich
dem Goodman-System gearbeitet wird, wird der anfängliche
Write-Through-Vorgang dazu benützt, die Speicherplätze
in den anderen Cache-Speichern ungültig zu machen. Bei
den Ausführungsbeispielen, bei denen mit exklusivem Zugriff
durch den Lesebefehl und einem Extra-Bit gearbeitet
wird, macht der Lesebefehl nicht nur die Daten in den
anderen Cache-Speichern ungültig, sondern setzt außerdem
ein Bit im Hauptspeicher, welches anzeigt, daß in
einem der Cache-Speicher eine "private" Kopie des
Speicherplatzes vorhanden ist.
Probleme ergeben sich jedoch nach dem anfänglichen Ungültigmachen,
wenn andere Prozessoren erneut einen
Zugriff zu den Daten fordern. Wie bei den Einebenen-
Cache-Speichersystemen müssen alle Cache-Speicher die
gemeinsam benutzten Busse auf Lesebefehle für Speicherplätze
bzw. -bereiche überwachen, von denen sie exklusive
Kopien gemacht haben. Bei einem nachfolgenden Lesevorgang
von einem anderen "privaten" Cache-Speicher wird
bei dem Ausführungsbeispiel mit einem Cache-Speichersystem
vom Goodman-Typ derjenige Cache-Speicher mit der
gültigen Kopie dem Hauptspeicher 24 signalisieren, daß
dieser nicht antworten soll und daraufhin (die Daten
im Hauptspeicher) durch die Daten seiner eigenen Kopie
der betreffenden Speicherstelle ersetzen. Bei einem
anschließenden Lesebefehl von einem anderen Prozessor
in einem System mit exklusivem Lesezugriff wird das
gesetzte Bit im Hauptspeicher 22 verhindern, daß der
Hauptspeicher antwortet, und der Cache-Speicher mit
der gültigen Kopie des betreffenden Hauptspeicherbereichs
wird stattdessen antworten. Zusätzlich muß dann,
wenn der Status eines Cache-Speichers anzeigt, daß es
eine "schmutzige" Kopie in einem in der Hierarchie darunter
befindlichen Cache-Speicher geben könnte, von
diesem Speicher ein Löschbefehl für den betreffenden
Speicherplatz nach unten zu dem fraglichen Cache-Speicher
gesendet werden. Derartige Löschbefehle müssen nach unten
zu niedrigeren Ebenen der Hierarchie weiterlaufen
und bewirken, daß die Cache-Speicher der unteren Ebene
ihren Zustand in den Status "gültig" ändern, gerade so,
als ob ein tatsächlicher Lesebefehl für diese Speicherstelle
auf den von ihnen gemeinsam benutzten Bussen
gesehen worden wäre.
Fig. 6 zeigt einen typischen Fall, bei dem ein hierarchisch
gegliedertes Write-Deferred-Cache-Speichersystem
verwendet wird. Unter der Voraussetzung, daß die Cache-
Speicher 14 b und 18 a exklusiv Zugriff zu einem Speicherbereich 15
haben, und zwar aufgrund der Schreibsequenz
aufgrund eines früheren Schreibbefehls, und daß der
Prozessor 12 h nunmehr die Daten aus dieser Speicherstelle
lesen möchte, wandert die betreffende Anfrage
bei der Anordnung gemäß Fig. 6 aufwärts durch die
Hierarchie (d. h. es werden keine Kopien in irgendwelchen
Cache-Speichern direkt oberhalb des Prozessors 12 h
vorhanden sein), so daß die Anforderung auf jeder
Ebene fehlschlagen wird. Wenn die Anforderung dann den
Bus 20 erreicht, wird der Cache-Speicher 18 a die Notwendigkeit
für das Aufheben des exklusiven Zugriffs erkennen
sowie die Notwendigkeit, möglicherweise eine
"schmutzige" Kopie des Speicherbereichs zu löschen. Der
Cache-Speicher 18 a wird daraufhin einen Löschbefehl
nach unten bis zu dem Bus 16 a senden, wo der Cache-
Speicher 14 b den exklusiven Zugriff aufheben und die
modifizierte Kopie des Speicherbereichs 15 aufwärts
in der Hierarchie zurücksenden wird. In Abhängigkeit
davon, welches Write-Deferred-Schema verwendet wird,
werden die Daten dann entweder zuerst in den Hauptspeicher 22
zurückkehren oder direkt in den Cache-
Speicher 18 c wandern und von dort zu dem Cache-Speicher 14 h
und dem Prozessor 12 h. Die Kopien im Cache-Speicher 18 a
und im Cache-Speicher 14 b bleiben erhalten, sind
jedoch nicht länger als "exklusiv" markiert.
Bei dem Multiprozessor-System gemäß vorliegender Erfindung
nehmen nur diejenigen unteren Zweige der Hierarchie
an dem Kohärenz-Datenverkehr teil, welche tatsächlich
Kopien des betroffenen Speicherbereichs enthalten.
Bei dem oben diskutierten Beispiel sehen der Prozessor
und die Cache-Speichereinheiten, die dem Cache-Speicher 18 b
zugeordnet sind, keine Ungültigkeits- oder Löschbefehle,
und folglich ergibt sich keine zusätzliche
Verkehrsbelastung auf dem Bus 16 b. Die Cache-Speicher-
Kohärenz wird folglich durch das ganze System hindurch
ohne ein ins Gewicht fallendes Anwachsen des Busverkehrs
aufrecht erhalten, und die auf der unteren Ebene
befindlichen Teile des Multiprozessor-Systems sind
gegeneinander soweit wie möglich isoliert. Der kombinierte
Effekt der Verkehrsisolation auf den unteren
Ebenen über mehrfache Busse, die Verringerung des Verkehrs
auf den höheren Ebenen aufgrund der hierarchischen
Anordnung der Cache-Speicher und die Begrenzung der
Kohärenzkontrolle auf die Bereiche, in denen sie nötig
ist, führt zu einer großen Multiplikation der Bandbreite
bei in vollem Umfang gemeinsam genutzten Hauptspeicher
und automatischer Kohärenzkontrolle. Während
die Verwendung von Write-Through-Cache-Speichern zu
einer Busauslastung auf den höheren Ebenen führen würde,
würde die Verwendung von Write-Deferred-Cache-Speichern
eine nahezu unbegrenzte Ausdehnung des Systems durch
Hinzufügen zusätzlicher Ebenen zu der Hierarchie ermöglichen.
Der in Fig. 5 und 6 gezeigte Teil des Multiprozessorsystems,
welcher den Cache-Speicher 18 a, den Bus 16 a,
die privaten Cache-Speicher 14 a, 14 b und 14 c und die
Prozessoren 12 a, 12 b, 12 c umfasst, wird nachstehend als
ein "Cluster" bzw. als Gruppe bezeichnet. Derartige
Gruppen sind in Wirklichkeit unabhängige Multiprozessor-
Computersysteme, in denen der Cash-Speicher 18 in Wirklichkeit
den Hauptsystemspeicher bildet. Das hierarchisch
gegliederte Cash-Speichersystem gemäß vorliegender Erfindung
ermöglicht das Verbinden mehrerer derartiger
Cluster bzw. Gruppen zu einem größeren Multiprozessor-
Computersystem, welches einen Haupt-Zentralspeicher 22
umfasst, der eine Kopie aller Daten in den Cache-Speichern 18
enthält. Da die Cache-Speicher-Kohärenz zwischen
den Cache-Speichern 18 aufrecht erhalten wird,
können die Daten zwischen den verschiedenen Gruppen
übertragen werden.
Das hierarchisch gegliederte Cache-Speichersystem
gemäß vorliegender Erfindung kann auch in Verbindung
mit Speichern mit mehreren Ports verwendet werden,
welche ihrerseits über mehrere gemeinsam benutzte Busse
gespeist werden können. Wie Fig. 7 zeigt, können Speicher
mit mehreren Ports verwendet werden, indem man
jedem Block in den Speichern ein Bit-Paar hinzufügt,
um die Spur für die Zugriffsmuster zu halten und um
die Notwendigkeit für das Aussenden von Ungültigkeits-
oder Löschbefehlen an die zugeordneten, gemeinsam genutzten
Busse 16 zu bestimmen.
Der Multiport-Speicher 24 kann auf eine Reihe von unterschiedlichen
Arten betrieben werden, je nachdem, ob
Write-Through-Cache-Speicher oder Write-Deferred-Cache-
Speicher verwendet werden. Beide Arten der Cache-Speicherung
nutzen die Tatsache, daß die Menge der aktiv
genutzten Daten in den meisten Multiprozessor-Systemen
sehr klein ist und daß somit eine gewisse verringerte
Effektivität für den Fall einer gemeinsamen Nutzung von
Daten toleriert werden kann. Das Arbeiten nach dem einfachsten
Schema bringt es mit sich, daß das System hinsichtlich
der Frage auf dem laufenden gehalten werden
muß, welcher der Ports 25, 26 (falls überhaupt einer)
exklusiv Zugriff zu einem Speicherplatz hat, damit
gewährleistet ist, daß die richtigen Ungültigkeits-
oder Löschbefehle bei jeder Änderung des Port-Status
ausgesendet werden. Wie das Zustandsdiagramm gemäß
Fig. 8 zeigt, kann dies dadurch erreicht werden, daß
für jeden Port für einen Zustand gesorgt wird, der anzeigt,
daß dies der letzte Port für das Empfangen eines
Schreibzugriffs war und daß seither keine Lese-Zugriffe
von anderen Ports erfolgt sind. Ein weiterer Zustand
wird angegeben, wenn seit dem letzten Schreibvorgang
Lesebefehle von mehreren Ports eingetroffen sind. Dieser
Zustand zeigt an, daß Kopien des Speicherinhalts
bzw. des Speicherbereichs in mehreren Gruppen vorhanden
sind. Diese Zustandssignale gestatten das Ausdehnen
von Write-Through- und Write-Deferred-Multi-Cache-
Speicher-Kohärenzschemen bei Speichern mit mehreren
Ports.
Die Arbeitsweise der Zwei-Port-Speicher ist für die
Write-Through- und die Write-Deferred-Schemen ähnlich.
Wenn ein Schreibzugriff an einem Port erfolgt, der bereits
in den Zustand "reserviert" gebracht wurde, dann
werden Ungültigkeitssignale an alle anderen Ports gesendet,
da diese eine Kopie des Speicherbereichs enthalten
könnten. Der Speicherbereich wird dann für den
betreffenden Port reserviert, indem man diesem Port
einen exklusiven Zugriff gewährt. Weitere Lese- oder
Schreibbefehle von dem reservierten Port führen nicht zu
zusätzlichen Ungültigkeitsbefehlen (und damit nicht zu
einem zusätzlichen Busverkehr); der Zugriff von anderen
Ports wird jedoch die Gewährung des exklusiven Zugriffs
für den ursprünglichen Port aufheben. Da Ungültigkeitsbefehle
nur dann ausgesendet werden, wenn Schreibvorgänge
an nicht reservierten Ports auftreten, wird der Normalfall,
bei dem Speicherbereiche nicht gemeinsam über
Gruppengrenzen hinweg benutzt werden oder nur im Lesebetrieb,
nicht zur Erzeugung zusätzlicher Ungültigkeitsbefehle
führen. Ungültigkeitsbefehle werden nur für diejenigen
Speicherbereiche auftreten, die zwischen beiden
Bussen gemeinsam benutzt und modifiziert werden, so daß
insgesamt nur eine sehr geringe Erhöhung des Busverkehrs
eintritt. Beim Arbeiten nach den Write-Deferred-Schemen
müssen Löschbefehle an diejenigen Gruppen gesendet werden,
die den Status ihrer exklusiven Zugriffsmöglichkeit aufgrund
eines Lesezugriffs von einem anderen Port verlieren.
Dies gewährleistet, daß beim Lesezugriff die neueste
Kopie des betreffenden Speicherbereichs erhalten wird.
Für den Fall, daß ein Löschbefehl erforderlich ist, ist
der Lesezyklus, welcher diesen Befehl ausgelöst hat,
nicht abgeschlossen, ehe nicht die Forderung nach der
Auslösung eines Löschbefehls erfüllt ist.
Das hierarchisch gegliederte Cache-Speichersystem gemäß
vorliegender Erfindung kann auf der untersten Ebene
mit Zwei-Port-Speichern verbunden werden, um eine Struktur
mit hierarchischen Verbindungen und einem körperlich
verteilten Hauptspeicher zu bilden, wie dies in Fig. 9
gezeigt ist. Fernabfragen eines lokalen Speichers können
über die lokalen, gemeinsam benutzten Buseinrichtungen
geleitet werden, wenn eine spezielle Adapterschaltung
verwendet wird, um eine Multiport-Kohärenzkontrolle
aufrecht zu erhalten, während Ein-Port-
Standardspeicher verwendet werden. In einem derartigen,
in Gruppen unterteilten System bildet jeder Bus auf
der untersten Ebene eine komplette Multiprozessor-
Gruppe mit direktem Zugriff zu einer Bank von lokalen
Gruppenspeichern.
Gemäß Fig. 10 erfolgt der Zugriff zu Daten, die in entfernten
Gruppen gespeichert sind, in ähnlicher Weise
wie bei einem geradlinig gegliederten, hierarchischen
Cache-Speichersystem. Die Gruppen-Cache-Speicher bilden
die zweite Ebene von Cache-Speichern und sorgen für
dieselbe Filterung und Kohärenzkontrolle für Fernanfragen
wie die zweite Ebene von Cache-Speichern bei
dem hierarchischen System gemäß Fig. 3, 5 und 6. Nach dem
Erreichen der Spitze bzw. der globalen Ebene der Hierarchie
wird die Anfrage abwärts zu der Gruppe gelenkt,
die die gewünschte Speicherstelle enthält, und läuft
über den gemeinsamen Bus dieser Gruppe. Da private
Cache-Speicher an dem Gruppenbaus diesen Zugriff ebenfalls
feststellen, sind keine speziellen Multiport-
Kohärenzaktionen erforderlich, wie sie erforderlich
wären, wenn der lokale Speicher als echter Multiport-
Speicher realisiert worden wäre. Für diejenigen Zugriffe,
die direkt zu dem Speicher in derselben Gruppe
gehen, zu der auch der den Zugriffsbefehl aussendende
Prozessor gehört, wird eine zusätzliche Kohärenzkontrolle
gemäß demselben Schema wie bei den Zwei-Port-
Speichern erforderlich. Diese Kohärenzkontrolle wird
ausgeführt, indem man eine spezialle Adapterkarte verwendet,
um die Spur möglicher entfernter Kopien zu
halten und um für Write-Deferred-Cache-Speicher festzustellen,
ob für diese entfernt abgelegte Kopie ein
exklusiver Zugriff besteht oder nicht. Wenn in einem
solchen Fall ein lokales Schreibsignal erhalten wird
und die Adapterkarte (vgl. die Adapterkartenzustände
gemäß Fig. 11) feststellt, daß eine entfernt abgespeicherte
Kopie vorhanden sein könnte, dann wird ein Ungültigkeitsbefehl
aufwärts durch die Hierarchie geschickt,
um die Funktion zu erfüllen, die der Einschreibbefehl
in einer reinen Hierarchie ausüben würde.
Wenn ein lokales Lesesignal für einen Speicherbereich
festgestellt wird, für den das Vorhandensein einer
entfernt abgelegten Kopie mit exklusivem Zugriff aufgezeichnet
ist, dann muß ein Löschbefehl nach oben durch
die Hierarchie geleitet werden. Mit diesen Erweiterungen
kann das Cache-Speicher-Kohärenzschema, welches für
hierarchisch geordnete Strukturen entwickelt wurde,
auch dazu verwendet werden, zwischen den einzelnen
Gruppen eines Systems die Kohärenz aufrecht zu erhalten.
Die Gruppenarchitektur bietet mehrere Vorteile. Beispielsweise
gestattet sie es, Code und Stapel lokal
für eine gegebene Gruppe beizubehalten und somit die
höheren Ebenen des Systems für den globalben Datenverkehr
übrig zu lassen. Infolgedessen ermöglichst die
Gruppenarchitektur selbst bei mäßig großen Multiprozessoren
die Verwendung des einfacheren Write-Through-
Cache-Speicherschemas. Man kann jeden Prozess auf jedem
der lokalen Gruppenprozessoren mit gleicher Leichtigkeit
laufen lassen und gewinn damit die meisten Vorteile,
die sich bei dem automatischen Belastungsausgleich
eines Multiprozessors mit enger Koppelung ergeben.
Diese Prozesse können jedoch auch, wenn es erforderlich
ist, in einer entfernten Gruppe durchgeführt
werden. Wegen der lokalen Cache-Speicher wird
selbst ein Prozess, der von einer entfernten Gruppe
läuft, nahezu die optimale Leistung erreichen. Ohne
die Lokalisierung wird jedoch der Busverkehr zwischen
den Gruppen erhöht, insbesondere, wenn Write-Through-
Cache-Speicher verwendet werden.
Die Gruppenarchitektur kann auch bei der Handhabung
von global-gemeinsamen Zugriffen hilfreich sein. Der
iterative Charakter mancher wissenschaftlicher Algorithmen
hat zur Folge, daß die globalen Zugriffe ein
schwaches Cache-Speicher-Verhalten zeigen. Da jedoch
diese Zugriffsmuster mit hoher Genauigkeit vorhersagbar
sind, ist es häufig der Fall, daß die globalen
Zugriffe unterteilt werden können, um sie in die Gruppen
zu bringen, wo die größte Benutzungshäufigkeit
stattfinden wird. In anderen Fällen kann sich die
Notwendigkeit ergeben, daß sich die globalen Daten
zwischen mehreren Gruppen bewegen. Es kann eine Blockübertragungs-
Hardware verwendet werden, um diese Bewegung
zu erreichen, ehe die Daten in der entfernten
Gruppe benötigt werden. Somit kann die Gruppenarchitektur
die Vorteile einer grobkörnigen Lokalität nutzen,
un das schlechte Cache-Speicherverhalten der globalen
Daten zu überwinden, was zu kürzeren Zugriffszeiten
und zu einem geringeren globalen Busverkehr führt als
bei einem geradlinig gegliederten hierarchischen Cache-
Speicherschema.
Während die Erfindung vorstehend unter Bezugnahme auf
bevorzugte Ausführungsbeispiele beschrieben wurde,
stehen dem Fachmann zahlreiche Möglichkeiten für Änderungen
und/oder Ergänzungen zu Gebote. Während beispielsweise
die Erfindung so beschrieben wurde, daß
zwei Ebenen von Cache-Speichern vorhanden sind (die
privaten Cache-Speicher und die Cache-Speicher zwischen
den privaten Cache-Speichern und dem Hauptspeicher),
kann zwischen den privaten Cache-Speichern und dem
Hauptspeicher jede Zahl von Cache-Speicherebenen liegen,
solange jeder Cache-Speicher einer höheren Ebene
genügend Speicherkapazität hat, um eine Kopie des
Speicherinhalts jedes der Cache-Speicher in der unmittelbar
darunter befindlichen Ebene aufzunehmen, mit
denen er verbunden ist. Weiterhin können andere Write-
Deffered-Schemen verwendet werden, um die Cache-Speicher-
Kohärenz aufrecht zu erhalten.
Legende (Key) zu Fig. 1 und 2:
Purge - Löschen von Cache-Speicher-Kopie wegen
Cache-Speicher-Ersatz
Processor Read - Lesebefehl von mit diesem Cache- Speicher verbundenen Prozessor
Processor Write - Schreibbefehl von mit diesem Cache- Speicher verbundenen Prozessor
Bus Read - Lesebefehl auf Bus
Bus Write - Schreibbefehl auf Bus
Flush Write - Spezieller Schreibbefehl an Hauptspeicher, dessen Daten ebenfalls auf den Befehl "Bus Read" ausgegeben werden.
Processor Read - Lesebefehl von mit diesem Cache- Speicher verbundenen Prozessor
Processor Write - Schreibbefehl von mit diesem Cache- Speicher verbundenen Prozessor
Bus Read - Lesebefehl auf Bus
Bus Write - Schreibbefehl auf Bus
Flush Write - Spezieller Schreibbefehl an Hauptspeicher, dessen Daten ebenfalls auf den Befehl "Bus Read" ausgegeben werden.
Legende zu Fig. 4:
L2BR - Lesebefehl auf Gruppenbus
L1BW - Schreibbefehl auf Gruppenbus
L1B1 - Befehl "ungültig machen" auf Gruppenbus
L1B1 - Befehl "Flush Write" auf Gruppenbus
L2 - Lesebefehl auf übergeordnetem Bus
L2 - Schreibbefehl auf übergeordnetem Bus
Purge - Ersatz von Cache-Speicher-Bereich durch anderen Speicherbereich
L1BW - Schreibbefehl auf Gruppenbus
L1B1 - Befehl "ungültig machen" auf Gruppenbus
L1B1 - Befehl "Flush Write" auf Gruppenbus
L2 - Lesebefehl auf übergeordnetem Bus
L2 - Schreibbefehl auf übergeordnetem Bus
Purge - Ersatz von Cache-Speicher-Bereich durch anderen Speicherbereich
Legende zu Fig. 8:
P0 - Port 0
P1 - Port 1
BR - Buslesebefehl empfangen
BW - Busschreibbefehl empfangen
GENBI - Signal "ungültig machen" auf Bus erzeugt
GENBF - Signal "Flush (Löschen)" auf Bus erzeugt
RESERVED - reserviert
NO RESERVATION - keine Reservierung
P1 - Port 1
BR - Buslesebefehl empfangen
BW - Busschreibbefehl empfangen
GENBI - Signal "ungültig machen" auf Bus erzeugt
GENBF - Signal "Flush (Löschen)" auf Bus erzeugt
RESERVED - reserviert
NO RESERVATION - keine Reservierung
Legende zu Fig. 11:
LOCAL READ - Lokaler Lesebefehl; LOCAL WRITE - lokaler
Schreibbefehl; LOCAL RESERVED - lokale Reservierung;
REMOTE READ - Fern-Lesebefehl; REMOTE WRITE - Fern-
Schreibbefehl; LOCAL VALID - lokal gültig; NO LOCAL
COPY - keine lokale Kopie; REMOTE INVALIDATE - Fernbefehl
"ungültig machen"; REMOTE FLUSH - Fernbefehl
"Flush (Löschen)"
Legende zu Fig. 1 und 2:
Löschen - Löschen von Cache-Speicher-Kopie wegen
Cache-Speicher-Ersatz
Prozessor lesen - Lesebefehl von mit diesem Cache-Speicher verbundenem Prozessor
Prozessor schreiben - Schreibbefehl von mit diesem Cache-Speicher verbundenem Prozessor
Bus lesen - Lesebefehl auf Bus
Bus schreiben - Schreibbefehl auf Bus
ungültig machen - Spezieller Schreibbefehl ("flush read") an Hauptspeicher, dessen Daten ebenfalls auf den Befehl "Bus lesen" ausgegeben werden
Prozessor lesen - Lesebefehl von mit diesem Cache-Speicher verbundenem Prozessor
Prozessor schreiben - Schreibbefehl von mit diesem Cache-Speicher verbundenem Prozessor
Bus lesen - Lesebefehl auf Bus
Bus schreiben - Schreibbefehl auf Bus
ungültig machen - Spezieller Schreibbefehl ("flush read") an Hauptspeicher, dessen Daten ebenfalls auf den Befehl "Bus lesen" ausgegeben werden
Legende zu Fig. 4:
L2BR - Lesebefehl auf Gruppenbus
L1BW - Schreibbefehl auf Gruppenbus
L1B1 - Befehl "ungültig machen" (invalidate) auf Gruppenbus
L1BF - Befehl "ungültig machen" (flush write) auf Gruppenbus
L2 - Lesebefehl auf übergeordnetem Bus
L2 - Schreibbefehl auf übergeordnetem Bus
Löschen - Ersatz von Cache-Speicher-Bereich durch anderen Speicherbereich
L1BW - Schreibbefehl auf Gruppenbus
L1B1 - Befehl "ungültig machen" (invalidate) auf Gruppenbus
L1BF - Befehl "ungültig machen" (flush write) auf Gruppenbus
L2 - Lesebefehl auf übergeordnetem Bus
L2 - Schreibbefehl auf übergeordnetem Bus
Löschen - Ersatz von Cache-Speicher-Bereich durch anderen Speicherbereich
Legende zu Fig. 8:
P0 - Port 0
P1 - Port 1
BR - Buslesebefehl empfangen
BW - Busschreibbefehl empfangen
GENBI - Signal "ungültig machen" auf Bus erzeugt
GENBF - Signal "Flush (Löschen" auf Bus erzeugt
P1 - Port 1
BR - Buslesebefehl empfangen
BW - Busschreibbefehl empfangen
GENBI - Signal "ungültig machen" auf Bus erzeugt
GENBF - Signal "Flush (Löschen" auf Bus erzeugt
Claims (22)
1. Hierarchisch gegliedertes Cache-Speichersystem
für ein Multiprozessor-Rechnersystem mit mehreren
Prozessoren und einem Systemspeicher, gekennzeichnet
durch folgende Merkmale:
es sind private Cache-Speichereinrichtungen (14) einer ersten unteren Ebene vorgesehen, die jeweils einem der Prozessoren (12) zugeordnet sind;
es sind erste Buseinrichtungen (16) vorgesehen, welche mindestens zwei der privaten Cache-Speichereinrichtungen (14) miteinander verbinden;
es sind Cache-Speichereinrichtungen (18) einer zweiten höheren Ebene vorgesehen, welche mit den ersten Buseinrichtungen (16) verbunden sind und welche eine Kopie des Inhalts jedes Speicherbereichs der mit den ersten Buseinrichtungen (16) verbundenen privaten Cache-Speichereinrichtungen (14) enthalten und die ebenfalls mit den ersten Buseinrichtungen (16) verbunden sind; und
es sind zweite Buseinrichtungen (20) vorgesehen, die mit mindestens einer der Cache-Speichereinrichtungen (18) der höheren Ebene und mit dem Systemspeicher (22) verbunden sind, welcher eine Kopie des Inhalts jedes Speicherbereichs der mit den zweiten Buseinrichtungen (20) verbundenen Cache-Speichereinrichtungen (18) der höheren Ebene enthält.
es sind private Cache-Speichereinrichtungen (14) einer ersten unteren Ebene vorgesehen, die jeweils einem der Prozessoren (12) zugeordnet sind;
es sind erste Buseinrichtungen (16) vorgesehen, welche mindestens zwei der privaten Cache-Speichereinrichtungen (14) miteinander verbinden;
es sind Cache-Speichereinrichtungen (18) einer zweiten höheren Ebene vorgesehen, welche mit den ersten Buseinrichtungen (16) verbunden sind und welche eine Kopie des Inhalts jedes Speicherbereichs der mit den ersten Buseinrichtungen (16) verbundenen privaten Cache-Speichereinrichtungen (14) enthalten und die ebenfalls mit den ersten Buseinrichtungen (16) verbunden sind; und
es sind zweite Buseinrichtungen (20) vorgesehen, die mit mindestens einer der Cache-Speichereinrichtungen (18) der höheren Ebene und mit dem Systemspeicher (22) verbunden sind, welcher eine Kopie des Inhalts jedes Speicherbereichs der mit den zweiten Buseinrichtungen (20) verbundenen Cache-Speichereinrichtungen (18) der höheren Ebene enthält.
2. Cache-Speichersystem nach Anspruch 1, dadurch gekennzeichnet,
daß es Einrichtungen umfasst, die es
ermöglichen, daß die Inhalte eines Speicherbereichs
einer der privaten Cache-Speichereinrichtungen (14),
zu welcher von ihrem zugeordneten Prozessor (12) ein
Schreibbefehl übertragen wurde, in den entsprechenden
Speicherbereich der zu der höheren Ebene gehörenden
Cache-Speichereinrichtung (18), die direkt zwischen
der betreffenden privaten Cache-Memoryeinrichtung
(14) und dem Systemspeicher (22) angeordnet ist, sowie
in den entsprechenden Speicherbereich des Systemspeichers
(22) eingeschrieben werden.
3. Cache-Speichersystem nach Anspruch 2, dadurch gekennzeichnet,
daß Einrichtungen vorgesehen sind,
um die Inhalte eines Speicherbereichs einer privaten
Cache-Speichereinrichtung (14) und/oder
einer zu der höheren Ebene gehörenden Cache-Speichereinrichtung
(18) ungültig zu machen, welche
einen Speicherbereich umfasst, der einem Speicherbereich
einer anderen privaten Speichereinrichtung
(14) entspricht, für den eine Schreiboperation
durchgeführt wurde.
4. Cache-Speichersystem nach Anspruch 1, gekennzeichnet
durch folgende Merkmale:
es sind Einrichtungen vorgesehen, um einen Speicherbereich einer privaten Cache-Speichereinrichtung in einen Zustand "reserviert" zu bringen, wenn der dieser privaten Cache-Speichereinrichtung (14) zugeordnete Prozessor (12) eine Schreiboperation für den betreffenden Speicherbereich ausführt, wobei der Zustand "reserviert" anzeigt, daß diejenige private Cache-Speichereinrichtung (14), welche den reservierten Speicherbereich enthält, die einzige private Cache-Speichereinrichtung (14) mit einer gültigen Kopie dieses Speicherbereichs ist; und
es sind Einrichtungen vorgesehen, um die Inhalte des reservierten Speicherbereichs in die mit der betreffenden Cache-Speichereinrichtung (14) verbundene Cache-Speichereinrichtung (18) der höheren Ebene und in den Systemspeicher (22) zu kopieren.
es sind Einrichtungen vorgesehen, um einen Speicherbereich einer privaten Cache-Speichereinrichtung in einen Zustand "reserviert" zu bringen, wenn der dieser privaten Cache-Speichereinrichtung (14) zugeordnete Prozessor (12) eine Schreiboperation für den betreffenden Speicherbereich ausführt, wobei der Zustand "reserviert" anzeigt, daß diejenige private Cache-Speichereinrichtung (14), welche den reservierten Speicherbereich enthält, die einzige private Cache-Speichereinrichtung (14) mit einer gültigen Kopie dieses Speicherbereichs ist; und
es sind Einrichtungen vorgesehen, um die Inhalte des reservierten Speicherbereichs in die mit der betreffenden Cache-Speichereinrichtung (14) verbundene Cache-Speichereinrichtung (18) der höheren Ebene und in den Systemspeicher (22) zu kopieren.
5. Cache-Speichersystem nach Anspruch 4, dadurch gekennzeichnet,
daß Einrichtungen vorgesehen sind,
um die Inhalte eines Speicherbereichs einer privaten
Cache-Speichereinrichtung (14) und/oder
einer Cache-Speichereinrichtung (18) der höheren
Ebene ungültig zu machen, wenn der betreffende
Speicherbereich einem Speicherbereich einer anderen
privaten Cache-Speichereinrichtung (14) entspricht,
für den eine Schreiboperation ausgeführt
wurde.
6. Cache-Speichersystem nach Anspruch 5, dadurch
gekennzeichnet, daß Freigabeeinrichtungen vorgesehen
sind, die den Prozessor (12), welcher eine
zugehörige private Cache-Speichereinrichtung (14)
mit einem in einem Zustand "reserviert" befindlichen
Speicherbereich aufweist, zur Durchführung zusätzlicher
Schreiboperationen ausschließlich für
folgende Speichereinrichtungen freigeben: die zugehörige
private Cache-Speichereinrichtung (14);
die zu der höheren Ebene gehörige Cache-Speichereinrichtung
(18), die mit der ersten Buseinrichtung
(16) verbunden ist, mit der auch die private
Cache-Speichereinrichtung (14) verbunden ist, die
den reservierten Speicherbereich enthält; und
der Systemspeicher (22), welcher die Inhalte des
reservierten Speicherbereichs in der Form beibehält,
in der sie vor den zusätzlichen Schreiboperationen
vorhanden waren.
7. Cache-Speichersystem nach Anspruch 4, dadurch gekennzeichnet,
daß Freigabeeinrichtungen vorgesehen
sind, durch die eine zu der höheren Ebene gehörige
Cache-Speichereinrichtung (18) zum Erkennen eines
in einem Zustand "reserviert" befindlichen Speicherbereichs
in einer Cache-Speichereinrichtung (14)
der niedrigeren Ebene freigebbar ist, die mit der
betreffenden Cache-Speichereinrichtung (18) der
höheren Ebene über einen Bus (16) verbunden ist,
mit dem die Cache-Speichereinrichtung (18) der
höheren Ebene und die Cache-Speichereinrichtung
(14) der niedrigeren Ebene verbunden sind.
8. Cache-Speichersystem nach Anspruch 7, dadurch gekennzeichnet,
daß Einrichtungen vorgesehen sind,
die es der zu der höheren Ebene gehörigen Cache-
Speichereinrichtung (18) ermöglichen, den in dem
Zustand "reserviert" befindlichen Speicherbereich
zu erkennen und dessen Inhalte zu übernehmen.
9. Cache-Speichersystem nach Anspruch 1, dadurch gekennzeichnet,
daß die zweiten Buseinrichtungen
(20) mit den zu der höheren Ebene gehörigen Cache-
Speichereinrichtungen (18) verbunden sind.
10. Cache-Speichersystem nach Anspruch 1, dadurch gekennzeichnet,
daß der Systemspeicher (22) Speichereinrichtungen
mit mehreren Ports aufweist, von
denen ein Port mit einem übergeordneten Bus (20)
verbunden ist und von denen ein zweiter Port mit
einem Bus (16) verbunden ist, mit dem auch die
Cache-Speichereinrichtungen (18) der höheren Ebene
verbunden sind.
11. Cache-Speichersystem nach Anspruch 1, dadurch gekennzeichnet,
daß mindestens ein Satz von zu zumindest
einer höheren Ebene gehörigen Cache-
Speichereinrichtungen (18) vorgesehen ist, daß
zugeordnete Buseinrichtungen vorgesehen sind, welche
zwischen die Cache-Speichereinrichtungen der
zweiten höheren Ebene und die zweiten Buseinrichtungen
geschaltet sind, wobei eine der zugeordneten
Buseinrichtungen mit den Cache-Speichereinrichtungen
der zweiten höheren Ebene und einer einer
noch höheren Ebene zugehörigen Cache-Speichereinrichtungen
eines der Sätze dieser Cache-Speichereinrichtungen
verbunden ist, die mit den zweiten
Buseinrichtungen verbunden sind.
12. Mikroprozessorsystem gekennzeichnet durch folgende Merkmale:
es ist ein erstes Mikroprozessorsystem vorgesehen, welches mindestens einen Prozessor umfasst, wobei der bzw. jeder einzelne Prozessor mit einem zugeordneten privaten Cache-Speicher zum Speichern von häufig benötigten Speicherbereichen verbunden ist und wobei der bzw. jeder einzelne Cache-Speicher mit den übrigen Cache-Speichern über einen ersten, gemeinsamen Bus verbunden ist;
es sind erste, gemeinsam benutzte Cache-Speichereinrichtungen vorgesehen, die mit dem ersten, gemeinsamen Bus verbunden sind und eine Kopie der Inhalte jedes Speicherbereichs des bzw. der privaten Cache-Speicher enthalten, die mit dem ersten gemeinsamen Bus verbunden sind;
es ist ein zweites Multiprozessorsystem vorgesehen, welches mindestens einen Prozessor umfasst, wobei der bzw. jeder einzelne Prozessor mit einem zugeordneten privaten Cache-Speicher zum Speichern von häufig benötigten Speicherbereichen verbunden ist und wobei der bzw. jeder einzelne Cache-Speicher mit dem bzw. jedem anderen dieser privaten Cache- Speicher über einen zweiten gemeinsamen Bus verbunden ist;
es sind zweite, gemeinsam benutzte Cache-Speichereinrichtungen vorgesehen, die mit dem zweiten gemeinsamen Bus verbunden sind und eine Kopie der Inhalte jedes Speicherbereichs des bzw. der privaten Cache-Speicher enthalten, die mit dem zweiten gemeinsamen Bus verbunden sind;
es sind Systemspeichereinrichtungen vorgesehen, die mit einem übergeordneten Bus verbunden sind, mit dem die ersten und die zweiten Cache-Speichereinrichtungen ebenfalls verbunden sind, und die Systemspeichereinrichtungen enthalten eine Kopie der Inhalte jedes Speicherbereichs der ersten und der zweiten Cache-Speichereinrichtungen.
es ist ein erstes Mikroprozessorsystem vorgesehen, welches mindestens einen Prozessor umfasst, wobei der bzw. jeder einzelne Prozessor mit einem zugeordneten privaten Cache-Speicher zum Speichern von häufig benötigten Speicherbereichen verbunden ist und wobei der bzw. jeder einzelne Cache-Speicher mit den übrigen Cache-Speichern über einen ersten, gemeinsamen Bus verbunden ist;
es sind erste, gemeinsam benutzte Cache-Speichereinrichtungen vorgesehen, die mit dem ersten, gemeinsamen Bus verbunden sind und eine Kopie der Inhalte jedes Speicherbereichs des bzw. der privaten Cache-Speicher enthalten, die mit dem ersten gemeinsamen Bus verbunden sind;
es ist ein zweites Multiprozessorsystem vorgesehen, welches mindestens einen Prozessor umfasst, wobei der bzw. jeder einzelne Prozessor mit einem zugeordneten privaten Cache-Speicher zum Speichern von häufig benötigten Speicherbereichen verbunden ist und wobei der bzw. jeder einzelne Cache-Speicher mit dem bzw. jedem anderen dieser privaten Cache- Speicher über einen zweiten gemeinsamen Bus verbunden ist;
es sind zweite, gemeinsam benutzte Cache-Speichereinrichtungen vorgesehen, die mit dem zweiten gemeinsamen Bus verbunden sind und eine Kopie der Inhalte jedes Speicherbereichs des bzw. der privaten Cache-Speicher enthalten, die mit dem zweiten gemeinsamen Bus verbunden sind;
es sind Systemspeichereinrichtungen vorgesehen, die mit einem übergeordneten Bus verbunden sind, mit dem die ersten und die zweiten Cache-Speichereinrichtungen ebenfalls verbunden sind, und die Systemspeichereinrichtungen enthalten eine Kopie der Inhalte jedes Speicherbereichs der ersten und der zweiten Cache-Speichereinrichtungen.
13. Multiprozessorsystem nach Anspruch 12, dadurch
gekennzeichnet, daß Einrichtungen vorgesehen sind,
die es ermöglichen, daß die Inhalte eines Speicherbereichs
einer der privaten Cache-Speichereinrichtungen,
zu welcher von ihrem zugeordneten Prozessor
ein Schreibbefehl übertragen wurde, in den entsprechenden
Speicherbereich der ersten oder der zweiten,
gemeinsam benutzten Cache-Speichereinrichtungen
sowie in den entsprechenden Speicherbereich des
Systemspeichers eingeschrieben werden.
14. Multiprozessorsystem nach Anspruch 13, dadurch
gekennzeichnet, daß Einrichtungen vorgesehen sind,
um die Inhalte eines Speicherbereichs einer privaten
Cache-Speichereinrichtung und/oder der ersten
und der zweiten, gemeinsam benutzten Cache-
Speichereinrichtungen ungültig zu machen, welche
einen Speicherbereich umfassen, der einem Speicherbereich
einer anderen privaten Cache-Speichereinrichtung
entspricht, für den eine Schreiboperation
durchgeführt wurde.
15. Multiprozessorsystem nach Anspruch 13, gekennzeichnet
durch folgende Merkmale:
es sind Einrichtungen vorgesehen, um einen Speicherbereich einer privaten Cache-Speichereinrichtung in einen Zustand "reserviert" zu bringen, wenn der dieser privaten Cache-Speichereinrichtung zugeordneten Prozessor eine Schreiboperation für den betreffenden Speicherbereich ausführt, wobei der Zustand "reserviert" anzeigt, daß diejenige private Cache-Speichereinrichtung, welche den reservierten Speicherbereich enthält, die einzige private Cache- Speichereinrichtung mit einer gültigen Kopie dieses Speicherbereichs ist; und
es sind Einrichtungen vorgesehen, um die Inhalte des reservierten Speicherbereichs in die ersten oder die zweiten, gemeinsam benutzten Cache-Speichereinrichtungen zu kopieren, die mit der Cache-Speichereinrichtung verbunden sind, welche den reservierten Speicherbereich enthält, und um die Inhalte des reservierten Speicherbereichs in die Systemspeichereinrichtungen zu kopieren.
es sind Einrichtungen vorgesehen, um einen Speicherbereich einer privaten Cache-Speichereinrichtung in einen Zustand "reserviert" zu bringen, wenn der dieser privaten Cache-Speichereinrichtung zugeordneten Prozessor eine Schreiboperation für den betreffenden Speicherbereich ausführt, wobei der Zustand "reserviert" anzeigt, daß diejenige private Cache-Speichereinrichtung, welche den reservierten Speicherbereich enthält, die einzige private Cache- Speichereinrichtung mit einer gültigen Kopie dieses Speicherbereichs ist; und
es sind Einrichtungen vorgesehen, um die Inhalte des reservierten Speicherbereichs in die ersten oder die zweiten, gemeinsam benutzten Cache-Speichereinrichtungen zu kopieren, die mit der Cache-Speichereinrichtung verbunden sind, welche den reservierten Speicherbereich enthält, und um die Inhalte des reservierten Speicherbereichs in die Systemspeichereinrichtungen zu kopieren.
16. Multiprozessorsystem nach Anspruch 15, dadurch gekennzeichnet,
daß Einrichtungen vorgesehen sind,
um die Inhalte eines Speicherbereich einer privaten
Cache-Speichereinrichtung und/oder der ersten und
der zweiten, gemeinsam benutzten Cache-Speichereinrichtungen
ungültig zu machen, wenn der betreffende
Speicherbereich einem Speicherbereich einer anderen
privaten Cache-Speichereinrichtung entspricht, für
den eine Schreiboperation ausgeführt wurde.
17. Multiprozessorsystem nach Anspruch 15, dadurch gekennzeichnet,
daß Freigabeeinrichtungen vorgesehen
sind, um eine gemeinsam benutzte Cache-Speichereinrichtung
dafür freizugeben, daß sie einen in
dem reservierten Zustand befindlichen Speicherbereich
in einer privaten Cache-Speichereinrichtung
erkennt, die mit der erkennenden, gemeinsam benutzten
Cache-Speichereinrichtung über einen Bus verbunden
ist, mit dem sowohl die gemeinsam benutzte Cache-
Speichereinrichtung als auch die private Cache-
Speichereinrichtung verbunden sind.
18. Multiprozessorsystem nach Anspruch 16, dadurch gekennzeichnet,
daß Freigabeeinrichtungen vorgesehen
sind, die denjenigen Prozessor, welcher eine
zugehörige private Cache-Speichereinrichtung mit
einem in einem Zustand "reserviert" befindlichen
Speicherbereich aufweist, zur Durchführung zusätzlicher
Schreiboperationen, ausschließlich für folgende
Speichereinrichtungen freigeben:
die zugehörigen privaten Cache-Speichereinrichtungen, die ersten oder die zweiten Cache-Speichereinrichtungen und die Systemspeichereinrichtungen, welche die Inhalte des reservierten Speicherbereichs in der Form enthalten, in der sie vor den zusätzlichen Schreiboperationen vorhanden waren.
die zugehörigen privaten Cache-Speichereinrichtungen, die ersten oder die zweiten Cache-Speichereinrichtungen und die Systemspeichereinrichtungen, welche die Inhalte des reservierten Speicherbereichs in der Form enthalten, in der sie vor den zusätzlichen Schreiboperationen vorhanden waren.
19. Multiprozessorsystem nach Anspruch 17, dadurch
gekennzeichnet, daß Einrichtungen vorgesehen sind,
die es der den reservierten Speicherbereich erkennenden,
gemeinsam benutzten Cache-Speichereinrichtung
ermöglichen, die Inhalte des Speicherbereichs
zu übernehmen, der sich in dem reservierten Zustand
befindet.
20. Verfahren zum Aufrechterhalten der Cache-Speicher-
Kohärenz in einem hierarchisch gegliederten Cache-
Speichersystem für ein Multiprozessor-Rechnersystem
mit mehreren Prozessoren, von denen jedem jeweils
ein privater Cache-Speicher individuell zugeordnet
ist, und mit einem Hauptsystemspeicher, gekennzeichnet
durch folgende Verfahrensschritte:
es wird ein zweiter, einer höheren Ebene zugeordneter Cache-Speicher vorgesehen, der mit dem privaten Cache-Speicher über einen ersten, von mindestens zweien der Prozessoren gemeinsam benutzten Bus und mit dem Hauptsystemspeicher über einen zweiten, übergeordneten (globalen) Bus verbunden ist; wenn ein Prozessor eine Schreiboperation bezüglich eines Speicherbereichs seines zugeordneten privaten Cache-Speichers ausführt, werden die Inhalte dieses Speicherbereichs in den zweiten, einer höheren Ebene zugeordneten Cache-Speicher, der mit dem ersten Bus verbunden ist, und in den mit dem übergeordneten zweiten Bus verbundenen Hauptspeicher kopiert;
diejenigen Cache-Speicherbereiche der Cache-Speicher, welche eine Kopie des angeschriebenen Speicherbereichs enthalten, werden außer in dem privaten Cache- Speicher, in den die neuen Daten eingeschrieben wurden, und außer in dem dazugehörigen, übergeordneten Cache-Speicher, in den die neuen Daten kopiert werden, ungültig gemacht.
es wird ein zweiter, einer höheren Ebene zugeordneter Cache-Speicher vorgesehen, der mit dem privaten Cache-Speicher über einen ersten, von mindestens zweien der Prozessoren gemeinsam benutzten Bus und mit dem Hauptsystemspeicher über einen zweiten, übergeordneten (globalen) Bus verbunden ist; wenn ein Prozessor eine Schreiboperation bezüglich eines Speicherbereichs seines zugeordneten privaten Cache-Speichers ausführt, werden die Inhalte dieses Speicherbereichs in den zweiten, einer höheren Ebene zugeordneten Cache-Speicher, der mit dem ersten Bus verbunden ist, und in den mit dem übergeordneten zweiten Bus verbundenen Hauptspeicher kopiert;
diejenigen Cache-Speicherbereiche der Cache-Speicher, welche eine Kopie des angeschriebenen Speicherbereichs enthalten, werden außer in dem privaten Cache- Speicher, in den die neuen Daten eingeschrieben wurden, und außer in dem dazugehörigen, übergeordneten Cache-Speicher, in den die neuen Daten kopiert werden, ungültig gemacht.
21. Verfahren nach Anspruch 20, gekennzeichnet durch
folgende Merkmale:
derjenige Speicherbereich des privaten Cache-Speichers, in dem die Schreiboperation ausgeführt wird, wird in einen Zustand "reserviert" gebracht, der anzeigt, daß der private Cache-Speicher, welcher den reservierten Speicherbereich enthält, der einzige private Cache-Speicher mit einer gültigen Kopie des betreffenden Speicherbereichs ist;
die Inhalte des reservierten Speicherbereichs werden in diejenigen, zu der zweiten höheren Ebene gehörigen Cache-Speichereinrichtungen kopiert, die mit dem genannten privaten Cache-Speicher verbunden sind und zwischen diesem privaten Cache-Speicher und dem Systemspeicher liegen und den reservierten Speicherbereich enthalten, sowie in den Systemspeicher;
derjenige Prozessor, dessen zugeordnete private Cache-Speichereinrichtungen einen im reservierten Zustand befindlichen Speicherbereich aufweisen, wird für weitere Schreiboperationen nur bezüglich der zugeordneten privaten Cache-Speichereinrichtungen, der zu der höheren Ebene gehörigen Cache- Speichereinrichtungen und des Systemspeichers freigegeben, welche die Inhalte des reservierten Speicherbereichs in der Form enthalten, in der diese vor den zusätzlichen Schreiboperationen vorhanden waren.
derjenige Speicherbereich des privaten Cache-Speichers, in dem die Schreiboperation ausgeführt wird, wird in einen Zustand "reserviert" gebracht, der anzeigt, daß der private Cache-Speicher, welcher den reservierten Speicherbereich enthält, der einzige private Cache-Speicher mit einer gültigen Kopie des betreffenden Speicherbereichs ist;
die Inhalte des reservierten Speicherbereichs werden in diejenigen, zu der zweiten höheren Ebene gehörigen Cache-Speichereinrichtungen kopiert, die mit dem genannten privaten Cache-Speicher verbunden sind und zwischen diesem privaten Cache-Speicher und dem Systemspeicher liegen und den reservierten Speicherbereich enthalten, sowie in den Systemspeicher;
derjenige Prozessor, dessen zugeordnete private Cache-Speichereinrichtungen einen im reservierten Zustand befindlichen Speicherbereich aufweisen, wird für weitere Schreiboperationen nur bezüglich der zugeordneten privaten Cache-Speichereinrichtungen, der zu der höheren Ebene gehörigen Cache- Speichereinrichtungen und des Systemspeichers freigegeben, welche die Inhalte des reservierten Speicherbereichs in der Form enthalten, in der diese vor den zusätzlichen Schreiboperationen vorhanden waren.
22. Verfahren nach Anspruch 21, dadurch gekennzeichnet,
daß eine zu der höheren Ebene gehörige Cache-
Speichereinrichtung zum Erkennen eines im reservierten
Zustand befindlichen Speicherbereichs in einer
zu einer niedrigeren Ebene gehörigen Cache-Speichereinrichtung
freigegeben wird, die mit der erkennenden
Cache-Speichereinrichtung über einen Bus verbunden
ist, mit dem die Cache-Speichereinrichtungen der
höheren Ebene und der niedrigeren Ebene verbunden
sind, und daß den zu der höheren Ebene gehörigen
Cache-Speichereinrichtungen, die den im reservierten
Zustand befindlichen Speicherbereich erkennen,
die Übernahme der Inhalte dieses im reservierten
Zustand befindlichen Speicherbereichs gestattet
wird.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/749,581 US4755930A (en) | 1985-06-27 | 1985-06-27 | Hierarchical cache memory system and method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE3621321A1 true DE3621321A1 (de) | 1987-03-12 |
Family
ID=25014344
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE19863621321 Ceased DE3621321A1 (de) | 1985-06-27 | 1986-06-26 | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US4755930A (de) |
| JP (1) | JP2540517B2 (de) |
| AU (1) | AU585361B2 (de) |
| DE (1) | DE3621321A1 (de) |
| FR (1) | FR2584212B1 (de) |
| GB (1) | GB2178205B (de) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5724549A (en) * | 1992-04-06 | 1998-03-03 | Cyrix Corporation | Cache coherency without bus master arbitration signals |
| DE19524023B4 (de) * | 1995-06-30 | 2004-02-05 | Fujitsu Siemens Computers Gmbh | Multiprozessorsystem mit einer sehr großen Anzahl von Mikroprozessoren |
Families Citing this family (182)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5045996A (en) * | 1986-11-12 | 1991-09-03 | Xerox Corporation | Multiprocessor cache memory housekeeping |
| US5276853A (en) * | 1987-05-18 | 1994-01-04 | Fujitsu Limited | Cache system |
| US4959777A (en) * | 1987-07-27 | 1990-09-25 | Motorola Computer X | Write-shared cache circuit for multiprocessor system |
| US5335325A (en) * | 1987-12-22 | 1994-08-02 | Kendall Square Research Corporation | High-speed packet switching apparatus and method |
| US5341483A (en) * | 1987-12-22 | 1994-08-23 | Kendall Square Research Corporation | Dynamic hierarchial associative memory |
| US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
| US5226039A (en) * | 1987-12-22 | 1993-07-06 | Kendall Square Research Corporation | Packet routing switch |
| US5119481A (en) * | 1987-12-22 | 1992-06-02 | Kendall Square Research Corporation | Register bus multiprocessor system with shift |
| US5761413A (en) | 1987-12-22 | 1998-06-02 | Sun Microsystems, Inc. | Fault containment system for multiprocessor with shared memory |
| US5282201A (en) * | 1987-12-22 | 1994-01-25 | Kendall Square Research Corporation | Dynamic packet routing network |
| US5251308A (en) * | 1987-12-22 | 1993-10-05 | Kendall Square Research Corporation | Shared memory multiprocessor with data hiding and post-store |
| DE68917326T2 (de) * | 1988-01-20 | 1995-03-02 | Advanced Micro Devices Inc | Organisation eines integrierten Cachespeichers zur flexiblen Anwendung zur Unterstützung von Multiprozessor-Operationen. |
| US5023776A (en) * | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
| JP2714952B2 (ja) * | 1988-04-20 | 1998-02-16 | 株式会社日立製作所 | 計算機システム |
| EP0343567A3 (de) * | 1988-05-25 | 1991-01-09 | Hitachi, Ltd. | Mehrprozessoranordnung und Cache-Speichervorrichtung zur Verwendung in dieser Anordnung |
| US5058006A (en) * | 1988-06-27 | 1991-10-15 | Digital Equipment Corporation | Method and apparatus for filtering invalidate requests |
| EP0348628A3 (de) * | 1988-06-28 | 1991-01-02 | International Business Machines Corporation | Cache-Speicheranordnung |
| DE68928454T2 (de) * | 1988-07-04 | 1998-04-23 | Sun Microsystems Inc | Multiprozessorsystem mit hierarchischer cachespeicheranordnung |
| US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | Coherent cache structures and methods |
| US5226146A (en) * | 1988-10-28 | 1993-07-06 | Hewlett-Packard Company | Duplicate tag store purge queue |
| US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
| JPH02188847A (ja) * | 1989-01-18 | 1990-07-24 | Agency Of Ind Science & Technol | 階層キャッシュメモリにおけるデータ交換方式 |
| US5185875A (en) * | 1989-01-27 | 1993-02-09 | Digital Equipment Corporation | Method and apparatus for reducing memory read latency in a shared memory system with multiple processors |
| US5222224A (en) * | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system |
| US5097532A (en) * | 1989-03-03 | 1992-03-17 | Compaq Computer Corporation | Circuit for enabling a cache using a flush input to circumvent a late noncachable address input |
| EP0389151A3 (de) * | 1989-03-22 | 1992-06-03 | International Business Machines Corporation | System und Verfahren für die Verwaltung eines verteilten Cache-Speichers |
| JPH02253356A (ja) * | 1989-03-28 | 1990-10-12 | Toshiba Corp | 階層キャッシュメモリ装置とその制御方式 |
| US5072369A (en) * | 1989-04-07 | 1991-12-10 | Tektronix, Inc. | Interface between buses attached with cached modules providing address space mapped cache coherent memory access with SNOOP hit memory updates |
| CA2019300C (en) | 1989-06-22 | 2001-06-12 | Kendall Square Research Corporation | Multiprocessor system with shared memory |
| US5155832A (en) * | 1989-07-05 | 1992-10-13 | Hewlett-Packard Company | Method to increase performance in a multi-level cache system by the use of forced cache misses |
| JPH0340046A (ja) * | 1989-07-06 | 1991-02-20 | Hitachi Ltd | キャッシュメモリ制御方式および情報処理装置 |
| US5230070A (en) * | 1989-09-08 | 1993-07-20 | International Business Machines Corporation | Access authorization table for multi-processor caches |
| JPH077358B2 (ja) * | 1989-09-18 | 1995-01-30 | 工業技術院長 | 階層キャッシュメモリ装置 |
| US5193162A (en) * | 1989-11-06 | 1993-03-09 | Unisys Corporation | Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities |
| US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
| US5136700A (en) * | 1989-12-22 | 1992-08-04 | Digital Equipment Corporation | Apparatus and method for reducing interference in two-level cache memories |
| JPH03230238A (ja) * | 1990-02-05 | 1991-10-14 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュメモリ制御方式 |
| JPH0625984B2 (ja) * | 1990-02-20 | 1994-04-06 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | マルチプロセツサ・システム |
| US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
| US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
| AU631631B2 (en) * | 1990-04-27 | 1992-12-03 | Digital Equipment Corporation | Improved scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor computer system |
| US5249284A (en) * | 1990-06-04 | 1993-09-28 | Ncr Corporation | Method and system for maintaining data coherency between main and cache memories |
| ATE170642T1 (de) * | 1990-06-15 | 1998-09-15 | Compaq Computer Corp | Mehrstufeneinschluss in mehrstufigen cache- speicherhierarchien |
| US5404482A (en) * | 1990-06-29 | 1995-04-04 | Digital Equipment Corporation | Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills |
| US5404483A (en) * | 1990-06-29 | 1995-04-04 | Digital Equipment Corporation | Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills |
| JP3009430B2 (ja) * | 1990-07-09 | 2000-02-14 | キヤノン株式会社 | プロセッサおよびそのキャッシュメモリ制御方法 |
| US5261069A (en) * | 1990-08-13 | 1993-11-09 | Hewlett-Packard Company | Method of maintaining consistency of cached data in a database system |
| CA2047888A1 (en) * | 1990-07-27 | 1992-01-28 | Hirosada Tone | Hierarchical memory control system |
| JP2708943B2 (ja) * | 1990-08-08 | 1998-02-04 | 三菱電機株式会社 | キャッシュメモリ制御装置 |
| US5483645A (en) * | 1990-10-26 | 1996-01-09 | Advanced Micro Devices, Inc. | Cache access system for multiple requestors providing independent access to the cache arrays |
| JPH04242454A (ja) * | 1991-01-17 | 1992-08-31 | Nec Corp | キャッシュメモリの一致処理方式 |
| JPH05108473A (ja) * | 1991-03-20 | 1993-04-30 | Hitachi Ltd | デ−タ処理システム |
| US5303362A (en) * | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
| US5313609A (en) * | 1991-05-23 | 1994-05-17 | International Business Machines Corporation | Optimum write-back strategy for directory-based cache coherence protocols |
| GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
| JPH07122864B2 (ja) * | 1991-07-22 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システム、データ処理システムに使用するインターフエース回路及びデータ・プロセツサ間の通信方法 |
| US5530835A (en) * | 1991-09-18 | 1996-06-25 | Ncr Corporation | Computer memory data merging technique for computers with write-back caches |
| CA2078312A1 (en) | 1991-09-20 | 1993-03-21 | Mark A. Kaufman | Digital data processor with improved paging |
| GB2260429B (en) * | 1991-10-11 | 1995-05-24 | Intel Corp | Versatile cache memory |
| US5551010A (en) * | 1991-11-19 | 1996-08-27 | Fujitsu Limited | Arithmetic operation unit and memory accessing device for accessing primary and secondary cache memories independently of a CPU |
| JP2746530B2 (ja) * | 1993-01-30 | 1998-05-06 | 洲 植 全 | 共有メモリマルチプロセッサ |
| JPH07117915B2 (ja) * | 1993-03-12 | 1995-12-18 | 株式会社東芝 | キャッシュメモリシステム |
| US5581727A (en) * | 1993-03-22 | 1996-12-03 | Compaq Computer Corporation | Hierarchical cache system flushing scheme based on monitoring and decoding processor bus cycles for flush/clear sequence control |
| 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 |
| FR2707777B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | Ensemble informatique à mémoire partagée. |
| FR2707778B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | NÓoeud de processeurs. |
| FR2707776B1 (fr) | 1993-07-15 | 1995-08-18 | Bull Sa | Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé. |
| US5809525A (en) * | 1993-09-17 | 1998-09-15 | International Business Machines Corporation | Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories |
| US5636365A (en) * | 1993-10-05 | 1997-06-03 | Nec Corporation | Hierarchical buffer memories for selectively controlling data coherence including coherence control request means |
| JP3200757B2 (ja) * | 1993-10-22 | 2001-08-20 | 株式会社日立製作所 | 並列計算機の記憶制御方法および並列計算機 |
| US5522057A (en) * | 1993-10-25 | 1996-05-28 | Intel Corporation | Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems |
| US5832534A (en) * | 1994-01-04 | 1998-11-03 | Intel Corporation | Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories |
| US5551005A (en) * | 1994-02-25 | 1996-08-27 | Intel Corporation | Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches |
| US5715428A (en) * | 1994-02-28 | 1998-02-03 | Intel Corporation | Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system |
| US5682516A (en) * | 1994-03-01 | 1997-10-28 | Intel Corporation | Computer system that maintains system wide cache coherency during deferred communication transactions |
| US5577226A (en) * | 1994-05-06 | 1996-11-19 | Eec Systems, Inc. | Method and system for coherently caching I/O devices across a network |
| JPH0816470A (ja) * | 1994-07-04 | 1996-01-19 | Hitachi Ltd | 並列計算機 |
| EP0707269A1 (de) * | 1994-10-11 | 1996-04-17 | International Business Machines Corporation | Cachespeicherkohärenznetzwerk für Multiprozessor-Datenverarbeitungssystem |
| JP3132749B2 (ja) * | 1994-12-05 | 2001-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ・データ処理システム |
| US6073211A (en) * | 1994-12-13 | 2000-06-06 | International Business Machines Corporation | Method and system for memory updates within a multiprocessor data processing system |
| US5586291A (en) * | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
| US5603005A (en) * | 1994-12-27 | 1997-02-11 | Unisys Corporation | Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed |
| US5717942A (en) * | 1994-12-27 | 1998-02-10 | Unisys Corporation | Reset for independent partitions within a computer system |
| US5701313A (en) * | 1995-02-24 | 1997-12-23 | Unisys Corporation | Method and apparatus for removing soft errors from a memory |
| US5511164A (en) * | 1995-03-01 | 1996-04-23 | Unisys Corporation | Method and apparatus for determining the source and nature of an error within a computer system |
| MX9706592A (es) * | 1995-03-17 | 1997-11-29 | Intel Corp | Protocolo de coherencia para multiprocesamiento cache en un conducto local. |
| US5752264A (en) * | 1995-03-31 | 1998-05-12 | International Business Machines Corporation | Computer architecture incorporating processor clusters and hierarchical cache memories |
| US5623632A (en) * | 1995-05-17 | 1997-04-22 | International Business Machines Corporation | System and method for improving multilevel cache performance in a multiprocessing system |
| US6128700A (en) * | 1995-05-17 | 2000-10-03 | Monolithic System Technology, Inc. | System utilizing a DRAM array as a next level cache memory and method for operating same |
| US5740400A (en) * | 1995-06-05 | 1998-04-14 | Advanced Micro Devices Inc. | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field |
| US5594863A (en) * | 1995-06-26 | 1997-01-14 | Novell, Inc. | Method and apparatus for network file recovery |
| US5875462A (en) * | 1995-12-28 | 1999-02-23 | Unisys Corporation | Multi-processor data processing system with multiple second level caches mapable to all of addressable memory |
| US5813034A (en) * | 1996-01-25 | 1998-09-22 | Unisys Corporation | Method and circuitry for modifying data words in a multi-level distributed data processing system |
| US6223260B1 (en) * | 1996-01-25 | 2001-04-24 | Unisys Corporation | Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states |
| US5838631A (en) | 1996-04-19 | 1998-11-17 | Integrated Device Technology, Inc. | Fully synchronous pipelined ram |
| DE19623668C1 (de) * | 1996-06-13 | 1997-10-16 | Siemens Nixdorf Inf Syst | Anordnung in Mehrprozessor-Datenverarbeitungsgeräten mit einem Interventionen umfassenden Kohärenzprotokoll für Pufferspeicher und Betriebsverfahren hierzu |
| US5937431A (en) * | 1996-07-12 | 1999-08-10 | Samsung Electronics Co., Ltd. | Multi- node, multi-level cache- only memory architecture with relaxed inclusion |
| US5900015A (en) * | 1996-08-09 | 1999-05-04 | International Business Machines Corporation | System and method for maintaining cache coherency using path directories |
| US5926830A (en) * | 1996-10-07 | 1999-07-20 | International Business Machines Corporation | Data processing system and method for maintaining coherency between high and low level caches using inclusive states |
| US6202125B1 (en) | 1996-11-25 | 2001-03-13 | Intel Corporation | Processor-cache protocol using simple commands to implement a range of cache configurations |
| US6279098B1 (en) | 1996-12-16 | 2001-08-21 | Unisys Corporation | Method of and apparatus for serial dynamic system partitioning |
| US5960455A (en) * | 1996-12-30 | 1999-09-28 | Unisys Corporation | Scalable cross bar type storage controller |
| US5875201A (en) * | 1996-12-30 | 1999-02-23 | Unisys Corporation | Second level cache having instruction cache parity error control |
| US5970253A (en) * | 1997-01-09 | 1999-10-19 | Unisys Corporation | Priority logic for selecting and stacking data |
| US5822766A (en) * | 1997-01-09 | 1998-10-13 | Unisys Corporation | Main memory interface for high speed data transfer |
| US5860093A (en) * | 1997-01-21 | 1999-01-12 | Unisys Corporation | Reduced instruction processor/storage controller interface |
| US5924116A (en) * | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
| US6209072B1 (en) | 1997-05-06 | 2001-03-27 | Intel Corporation | Source synchronous interface between master and slave using a deskew latch |
| US6175899B1 (en) * | 1997-05-19 | 2001-01-16 | International Business Machines Corporation | Method for providing virtual atomicity in multi processor environment having access to multilevel caches |
| JP3288261B2 (ja) * | 1997-06-19 | 2002-06-04 | 甲府日本電気株式会社 | キャッシュシステム |
| US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
| US6092155A (en) * | 1997-07-10 | 2000-07-18 | International Business Machines Corporation | Cache coherent network adapter for scalable shared memory processing systems |
| US6115795A (en) | 1997-08-06 | 2000-09-05 | International Business Machines Corporation | Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system |
| US9092595B2 (en) | 1997-10-08 | 2015-07-28 | Pact Xpp Technologies Ag | Multiprocessor having associated RAM units |
| US5860101A (en) * | 1997-12-17 | 1999-01-12 | International Business Machines Corporation | Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory |
| US5893163A (en) * | 1997-12-17 | 1999-04-06 | International Business Machines Corporation | Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system |
| US6263407B1 (en) | 1998-02-17 | 2001-07-17 | International Business Machines Corporation | Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode |
| US6192451B1 (en) | 1998-02-17 | 2001-02-20 | International Business Machines Corporation | Cache coherency protocol for a data processing system including a multi-level memory hierarchy |
| US6292872B1 (en) | 1998-02-17 | 2001-09-18 | International Business Machines Corporation | Cache coherency protocol having hovering (H) and recent (R) states |
| US6272603B1 (en) | 1998-02-17 | 2001-08-07 | International Business Machines Corporation | Cache coherency protocol having hovering (H), recent (R), and tagged (T) states |
| US6341336B1 (en) * | 1998-02-17 | 2002-01-22 | International Business Machines Corporation | Cache coherency protocol having tagged state used with cross-bars |
| US6334172B1 (en) * | 1998-02-17 | 2001-12-25 | International Business Machines Corporation | Cache coherency protocol with tagged state for modified values |
| US6275908B1 (en) | 1998-02-17 | 2001-08-14 | International Business Machines Corporation | Cache coherency protocol including an HR state |
| US6415358B1 (en) | 1998-02-17 | 2002-07-02 | International Business Machines Corporation | Cache coherency protocol having an imprecise hovering (H) state for instructions and data |
| US6701416B1 (en) * | 1998-02-17 | 2004-03-02 | International Business Machines Corporation | Cache coherency protocol with tagged intervention of modified values |
| US6330643B1 (en) * | 1998-02-17 | 2001-12-11 | International Business Machines Corporation | Cache coherency protocols with global and local posted operations |
| US6115320A (en) | 1998-02-23 | 2000-09-05 | Integrated Device Technology, Inc. | Separate byte control on fully synchronous pipelined SRAM |
| GB9806184D0 (en) * | 1998-03-23 | 1998-05-20 | Sgs Thomson Microelectronics | A cache coherency mechanism |
| US6338117B1 (en) * | 1998-08-28 | 2002-01-08 | International Business Machines Corporation | System and method for coordinated hierarchical caching and cache replacement |
| US6604116B1 (en) | 1999-03-31 | 2003-08-05 | Hewlett-Packard Development Company, L.P. | Decreasing memory return latency by predicting the order of completion of partially ready returns |
| US7069406B2 (en) * | 1999-07-02 | 2006-06-27 | Integrated Device Technology, Inc. | Double data rate synchronous SRAM with 100% bus utilization |
| US6658556B1 (en) * | 1999-07-30 | 2003-12-02 | International Business Machines Corporation | Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction |
| US6449691B1 (en) | 1999-07-30 | 2002-09-10 | International Business Machines Corporation | Asymmetrical cache properties within a hashed storage subsystem |
| US6598118B1 (en) | 1999-07-30 | 2003-07-22 | International Business Machines Corporation | Data processing system with HSA (hashed storage architecture) |
| US6446165B1 (en) | 1999-07-30 | 2002-09-03 | International Business Machines Corporation | Address dependent caching behavior within a data processing system having HSA (hashed storage architecture) |
| US6470442B1 (en) | 1999-07-30 | 2002-10-22 | International Business Machines Corporation | Processor assigning data to hardware partition based on selectable hash of data address |
| US6823471B1 (en) | 1999-07-30 | 2004-11-23 | International Business Machines Corporation | Method for providing high availability within a data processing system via a reconfigurable hashed storage subsystem |
| US6516404B1 (en) | 1999-07-30 | 2003-02-04 | International Business Machines Corporation | Data processing system having hashed architected processor facilities |
| US6374332B1 (en) * | 1999-09-30 | 2002-04-16 | Unisys Corporation | Cache control system for performing multiple outstanding ownership requests |
| US6484238B1 (en) | 1999-12-20 | 2002-11-19 | Hewlett-Packard Company | Apparatus and method for detecting snoop hits on victim lines issued to a higher level cache |
| US6457101B1 (en) * | 1999-12-20 | 2002-09-24 | Unisys Corporation | System and method for providing the speculative return of cached data within a hierarchical memory system |
| US6546462B1 (en) * | 1999-12-30 | 2003-04-08 | Intel Corporation | CLFLUSH micro-architectural implementation method and system |
| GB2401227B (en) * | 1999-12-30 | 2005-03-16 | Intel Corp | Cache line flush micro-architectural implementation method and system |
| US7987217B2 (en) * | 2000-05-12 | 2011-07-26 | Oracle International Corporation | Transaction-aware caching for document metadata |
| US7421541B2 (en) * | 2000-05-12 | 2008-09-02 | Oracle International Corporation | Version management of cached permissions metadata |
| US6356983B1 (en) * | 2000-07-25 | 2002-03-12 | Src Computers, Inc. | System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture |
| US6928517B1 (en) | 2000-08-30 | 2005-08-09 | Unisys Corporation | Method for avoiding delays during snoop requests |
| US6857049B1 (en) | 2000-08-30 | 2005-02-15 | Unisys Corporation | Method for managing flushes with the cache |
| US7069391B1 (en) | 2000-08-30 | 2006-06-27 | Unisys Corporation | Method for improved first level cache coherency |
| US6792507B2 (en) | 2000-12-14 | 2004-09-14 | Maxxan Systems, Inc. | Caching system and method for a network storage system |
| US6697925B1 (en) | 2000-12-22 | 2004-02-24 | Unisys Corporation | Use of a cache ownership mechanism to synchronize multiple dayclocks |
| US6571322B2 (en) * | 2000-12-28 | 2003-05-27 | International Business Machines Corporation | Multiprocessor computer system with sectored cache line mechanism for cache intervention |
| US6553462B2 (en) * | 2000-12-28 | 2003-04-22 | International Business Machines Corporation | Multiprocessor computer system with sectored cache line mechanism for load and store operations |
| US6484241B2 (en) * | 2000-12-28 | 2002-11-19 | International Business Machines Corporation | Multiprocessor computer system with sectored cache line system bus protocol mechanism |
| US7035911B2 (en) | 2001-01-12 | 2006-04-25 | Epicrealm, Licensing Llc | Method and system for community data caching |
| US7188145B2 (en) * | 2001-01-12 | 2007-03-06 | Epicrealm Licensing Llc | Method and system for dynamic distributed data caching |
| US7693541B1 (en) | 2001-07-20 | 2010-04-06 | Oracle International Corporation | Multimodal session support on distinct multi channel protocol |
| US20030084219A1 (en) * | 2001-10-26 | 2003-05-01 | Maxxan Systems, Inc. | System, apparatus and method for address forwarding for a computer network |
| US7145914B2 (en) * | 2001-12-31 | 2006-12-05 | Maxxan Systems, Incorporated | System and method for controlling data paths of a network processor subsystem |
| US7085846B2 (en) * | 2001-12-31 | 2006-08-01 | Maxxan Systems, Incorporated | Buffer to buffer credit flow control for computer network |
| US6785775B1 (en) | 2002-03-19 | 2004-08-31 | Unisys Corporation | Use of a cache coherency mechanism as a doorbell indicator for input/output hardware queues |
| US7295561B1 (en) | 2002-04-05 | 2007-11-13 | Ciphermax, Inc. | Fibre channel implementation using network processors |
| US7379970B1 (en) | 2002-04-05 | 2008-05-27 | Ciphermax, Inc. | Method and system for reduced distributed event handling in a network environment |
| US7307995B1 (en) | 2002-04-05 | 2007-12-11 | Ciphermax, Inc. | System and method for linking a plurality of network switches |
| US7406038B1 (en) | 2002-04-05 | 2008-07-29 | Ciphermax, Incorporated | System and method for expansion of computer network switching system without disruption thereof |
| TW591526B (en) * | 2002-04-09 | 2004-06-11 | Via Tech Inc | Data maintenance method of DSM system |
| US20030195956A1 (en) * | 2002-04-15 | 2003-10-16 | Maxxan Systems, Inc. | System and method for allocating unique zone membership |
| US20030200330A1 (en) * | 2002-04-22 | 2003-10-23 | Maxxan Systems, Inc. | System and method for load-sharing computer network switch |
| US7017012B2 (en) * | 2002-06-20 | 2006-03-21 | Sun Microsystems, Inc. | Distributed storage cache coherency system and method |
| US20040030766A1 (en) * | 2002-08-12 | 2004-02-12 | Michael Witkowski | Method and apparatus for switch fabric configuration |
| US20040117667A1 (en) * | 2002-12-12 | 2004-06-17 | Sun Microsystems, Inc. | Synchronization facility for information domains employing replicas |
| US20040117666A1 (en) * | 2002-12-12 | 2004-06-17 | Sun Microsystems, Inc. | Invalidation facility for synchronizing information domains |
| US20070162707A1 (en) * | 2003-12-03 | 2007-07-12 | Matsushita Electric Industrial Co., Ltd. | Information recording medium data processing apparatus and data recording method |
| US7941585B2 (en) | 2004-09-10 | 2011-05-10 | Cavium Networks, Inc. | Local scratchpad and data caching system |
| US7594081B2 (en) | 2004-09-10 | 2009-09-22 | Cavium Networks, Inc. | Direct access to low-latency memory |
| DK1794979T3 (en) | 2004-09-10 | 2017-07-24 | Cavium Inc | Selective copying of data structure |
| US7949826B2 (en) * | 2007-07-05 | 2011-05-24 | International Business Machines Corporation | Runtime machine supported method level caching |
| US8132162B2 (en) | 2007-07-05 | 2012-03-06 | International Business Machines Corporation | Runtime machine analysis of applications to select methods suitable for method level caching |
| US20100114929A1 (en) * | 2008-11-06 | 2010-05-06 | Yahoo! Inc. | Diverse query recommendations using clustering-based methodology |
| US8352687B2 (en) | 2010-06-23 | 2013-01-08 | International Business Machines Corporation | Performance optimization and dynamic resource reservation for guaranteed coherency updates in a multi-level cache hierarchy |
| US8868833B1 (en) | 2011-08-02 | 2014-10-21 | Ionu Security, Inc. | Processor and cache arrangement with selective caching between first-level and second-level caches |
| GB2547189A (en) * | 2016-02-03 | 2017-08-16 | Swarm64 As | Cache and method |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0082949A2 (de) * | 1981-12-30 | 1983-07-06 | International Business Machines Corporation | Hybride Cache-Steuerung |
| US4504902A (en) * | 1982-03-25 | 1985-03-12 | At&T Bell Laboratories | Cache arrangement for direct memory access block transfer |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2361718A1 (fr) * | 1976-08-11 | 1978-03-10 | Adersa | Processeur parallele associatif a hierarchie de memoire, notamment pour l'acquisition et le traitement rapides des signaux |
| US4157586A (en) * | 1977-05-05 | 1979-06-05 | International Business Machines Corporation | Technique for performing partial stores in store-thru memory configuration |
| US4141067A (en) * | 1977-06-13 | 1979-02-20 | General Automation | Multiprocessor system with cache memory |
| US4136386A (en) * | 1977-10-06 | 1979-01-23 | International Business Machines Corporation | Backing store access coordination in a multi-processor system |
| US4161024A (en) * | 1977-12-22 | 1979-07-10 | Honeywell Information Systems Inc. | Private cache-to-CPU interface in a bus oriented data processing system |
| JPS5849945B2 (ja) * | 1977-12-29 | 1983-11-08 | 富士通株式会社 | バツフア合せ方式 |
| US4228503A (en) * | 1978-10-02 | 1980-10-14 | Sperry Corporation | Multiplexed directory for dedicated cache memory system |
| JPS5619575A (en) * | 1979-07-25 | 1981-02-24 | Fujitsu Ltd | Data processing system having hierarchy memory |
| US4322795A (en) * | 1980-01-24 | 1982-03-30 | Honeywell Information Systems Inc. | Cache memory utilizing selective clearing and least recently used updating |
| US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
| US4464712A (en) * | 1981-07-06 | 1984-08-07 | International Business Machines Corporation | Second level cache replacement method and apparatus |
| US4442487A (en) * | 1981-12-31 | 1984-04-10 | International Business Machines Corporation | Three level memory hierarchy using write and share flags |
| US4530055A (en) * | 1982-03-03 | 1985-07-16 | Sperry Corporation | Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory |
| US4464717A (en) * | 1982-03-31 | 1984-08-07 | Honeywell Information Systems Inc. | Multilevel cache system with graceful degradation capability |
| US4489381A (en) * | 1982-08-06 | 1984-12-18 | International Business Machines Corporation | Hierarchical memories having two ports at each subordinate memory level |
| US4577293A (en) * | 1984-06-01 | 1986-03-18 | International Business Machines Corporation | Distributed, on-chip cache |
-
1985
- 1985-06-27 US US06/749,581 patent/US4755930A/en not_active Expired - Lifetime
-
1986
- 1986-06-24 AU AU59143/86A patent/AU585361B2/en not_active Ceased
- 1986-06-26 DE DE19863621321 patent/DE3621321A1/de not_active Ceased
- 1986-06-26 GB GB8615639A patent/GB2178205B/en not_active Expired
- 1986-06-26 FR FR868609295A patent/FR2584212B1/fr not_active Expired - Lifetime
- 1986-06-27 JP JP61151334A patent/JP2540517B2/ja not_active Expired - Lifetime
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0082949A2 (de) * | 1981-12-30 | 1983-07-06 | International Business Machines Corporation | Hybride Cache-Steuerung |
| US4504902A (en) * | 1982-03-25 | 1985-03-12 | At&T Bell Laboratories | Cache arrangement for direct memory access block transfer |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5724549A (en) * | 1992-04-06 | 1998-03-03 | Cyrix Corporation | Cache coherency without bus master arbitration signals |
| DE19524023B4 (de) * | 1995-06-30 | 2004-02-05 | Fujitsu Siemens Computers Gmbh | Multiprozessorsystem mit einer sehr großen Anzahl von Mikroprozessoren |
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6284350A (ja) | 1987-04-17 |
| AU5914386A (en) | 1987-01-08 |
| FR2584212B1 (fr) | 1990-11-02 |
| JP2540517B2 (ja) | 1996-10-02 |
| GB2178205B (en) | 1989-12-06 |
| GB8615639D0 (en) | 1986-07-30 |
| FR2584212A1 (fr) | 1987-01-02 |
| AU585361B2 (en) | 1989-06-15 |
| GB2178205A (en) | 1987-02-04 |
| US4755930A (en) | 1988-07-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3621321A1 (de) | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren | |
| DE69715203T2 (de) | Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff | |
| DE69031086T2 (de) | Cache-Speicherinhaltssteuerung in Mehrprozessornetzwerken | |
| DE69317729T2 (de) | Cache-Etikettenspeicher | |
| DE2856133C2 (de) | Datenverarbeitungsvorrichtung mit einem Hauptspeicher und einem Assoziativspeicher als Pufferspeicher | |
| EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
| DE3856451T2 (de) | Multiprozessor-Digitaldatenverarbeitungssystem | |
| DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
| DE68924206T2 (de) | Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen. | |
| DE69732938T2 (de) | Hybrides Speicherzugangsprotokoll in einem Datenverarbeitungssystem mit verteiltem, gemeinsamem Speicher | |
| DE69130580T2 (de) | Cache-Speicheranordnung | |
| DE69130086T2 (de) | Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien | |
| DE3586389T2 (de) | Dynamisch zugeordnete lokale/globale speicheranordnung. | |
| DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
| DE69025232T2 (de) | Verfahren zur Aufrechterhaltung der Cache-Speicherkohärenz in einem Mehrrechnersystem | |
| DE69706934T2 (de) | Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte | |
| DE69803478T2 (de) | Ein/ausgabe weiterleitung in einem cachekohärenten rechnersystem mit gemeinsam genutztem plattenspeicher | |
| DE69721394T2 (de) | Verfahren und Vorrichtung für einen Kohärenzumwandler mit begrenztem Speicher zur Verbindung von Rechnersystem-Kohärenzdomänen | |
| DE69222060T2 (de) | Semaphore umgehung. | |
| DE3011552A1 (de) | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer | |
| DE2847960A1 (de) | Speichersteuereinrichtung | |
| DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
| DE68928454T2 (de) | Multiprozessorsystem mit hierarchischer cachespeicheranordnung | |
| DE3724730A1 (de) | Cache-steuereinrichtung | |
| DE69806855T2 (de) | Ersetzungszähler für Maschine mit nichtuniformen Speicherzugriffen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8110 | Request for examination paragraph 44 | ||
| 8125 | Change of the main classification |
Ipc: G06F 12/08 |
|
| 8131 | Rejection |