[go: up one dir, main page]

DE3621321A1 - Cache-speicher- bzw. multiprozessor-system und betriebsverfahren - Google Patents

Cache-speicher- bzw. multiprozessor-system und betriebsverfahren

Info

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
Application number
DE19863621321
Other languages
English (en)
Inventor
Jr Andrew W Wilson
Steven J Frank
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Encore Computer Corp
Original Assignee
Encore Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Encore Computer Corp filed Critical Encore Computer Corp
Publication of DE3621321A1 publication Critical patent/DE3621321A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache 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.
Anlage zu Zeichnungen
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.
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
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
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)"
Anlage zu den Zeichnungen
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
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
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

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.
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.
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.
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.
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.
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.
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.
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.
DE19863621321 1985-06-27 1986-06-26 Cache-speicher- bzw. multiprozessor-system und betriebsverfahren Ceased DE3621321A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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