DE69327213T2 - Prozessor und Cache-Speicher zum Empfang von Daten anderer Prozessoren - Google Patents

Prozessor und Cache-Speicher zum Empfang von Daten anderer Prozessoren

Info

Publication number
DE69327213T2
DE69327213T2 DE69327213T DE69327213T DE69327213T2 DE 69327213 T2 DE69327213 T2 DE 69327213T2 DE 69327213 T DE69327213 T DE 69327213T DE 69327213 T DE69327213 T DE 69327213T DE 69327213 T2 DE69327213 T2 DE 69327213T2
Authority
DE
Germany
Prior art keywords
cache
data
receive
main
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69327213T
Other languages
English (en)
Other versions
DE69327213D1 (de
Inventor
Naoki Hamanaka
Tatsuo Higuchi
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of DE69327213D1 publication Critical patent/DE69327213D1/de
Publication of DE69327213T2 publication Critical patent/DE69327213T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf einen Prozessor mit einem Cache-Speicher, der in einem Mehrprozessorsystem verwendet wird, und insbesondere auf einen Prozessor, der einen Empfangs-Cache-Speicher zum Empfangen von Daten von anderen Prozessoren in einem derartigen System verwendet.
  • In einem Parallelverarbeitungssystem mit mehreren Prozessorelementen (PE), wovon jedes einen Prozessor und einen lokalen Speicher besitzt, ist bekannt, daß der Zugriff durch den Prozessor auf den lokalen Speicher beschleunigt wird, indem für den lokalen Speicher jedes PE ein Cache- Speicher bereitgestellt wird. Beispiele für derartige Systeme sind in den japanischen Patentoffenlegungsschriften Nr. 150659/1992 und 168860/1992 offenbart. Diese bekannten Beispiele verwenden den Cache-Speicher nicht nur zum Beschleunigen des Zugriffs auf den lokalen Speicher durch den Prozessor, sondern außerdem zur Vergrößerung der Betriebsgeschwindigkeit, wenn die Daten in dem lokalen Speicher zu anderen PEs übertragen werden. Das heißt, wenn die Daten im lokalen Speicher zu anderen PEs zu senden sind und diese Daten in dem Cache-Speicher gespeichert sind, fordert der PE auf der Sendeseite die Daten aus dem Cache-Speicher an und sendet sie in das Netz.
  • In der japanischen Patentoffenlegungsschrift Nr. 150659/1992 gibt es keine Beschreibung der Verarbeitung der empfangenen Daten. In Denshi Joho Tsushin Gakkai Ronbunshi (Electronic Information Communications Society, Artikelsammlung) D-1, Bd. J75-D-1, Nr. 8, 637-645 (im folgenden einfach als der Denshi-Artikel bezeichnet), ist offenbart, daß die empfangenen Daten in den lokalen Spei cher geschrieben werden, obwohl die Offenbarung über die Verarbeitung der zu einem Ziel-Cluster zu sendenden Daten die gleiche ist wie die, die in der japanischen Patentoffenlegungsschrift Nr. 150659/1992 offenbart ist. In der japanischen Patentoffenlegungsschrift Nr. 168860/1992 wird zuerst geprüft, ob der Cache-Speicher vorhergehende Daten speichert, wenn externe Daten empfangen werden und in den lokalen Speicher zu schreiben sind. Falls in dem Cache-Speicher die vorhergehenden Daten enthalten sind, werden sie außerdem mit den empfangenen Daten überschrieben, um die empfangenen Daten aus dem Cache-Speicher für den Prozessor verfügbar zu machen. Wenn der Cache-Speicher keine vorhergehenden Daten enthält, werden die empfangenen Daten in den lokalen Speicher geschrieben.
  • In der japanischen Patentoffenlegungsschrift Nr. 150659/1992 werden die Daten, die sich im Cache-Speicher des Prozessors befinden, direkt in das Netz gebracht, wenn die Daten zu einem Ziel-Cluster zu senden sind. Jedoch wird durch keine spezifische Offenbarung die Beschleunigung die Empfangsverarbeitung erwähnt. In dem Denshi-Artikel werden die empfangenen Daten im lokalen Speicher gespeichert, und wenn der Prozessor auf die Daten Bezug nimmt, liest er sie aus dem lokalen Speicher. Weil durch den Prozessor immer auf die empfangenen Daten Bezug genommen wird, wird der Zusatzaufwand für die Bezugnahme auf die Daten die Leistung des Parallelverarbeitungssystems sehr wahrscheinlich herabsetzen.
  • In der japanischen Patentoffenlegungsschrift Nr. 168860/1992 vergrößert sich andererseits notwendigerweise der Zusatzaufwand für das Senden der Daten, weil auf die zu sendenden Daten von dem lokalen Speicher Bezug genommen wird. Was den Empfangsprozeß anbelangt, wenn der Cache-Speicher des Prozessors die Daten enthält, die mit den empfangenen Daten zu überschreiben sind, wird der Ca che-Speicher aktualisiert, um den Zusatzaufwand für die Bezugnahme auf die Daten durch den Prozessor klein zu halten.
  • Wenn jedoch die zu überschreibenden Daten in dem Cache- Speicher durch andere Daten ersetzt werden, so daß die zu aktualisierenden Daten nicht in dem Cache-Speicher enthalten sind, werden die empfangenen Daten (einmal) in den lokalen Speicher geschrieben. Der Prozessor nimmt dann auf die Daten in dem lokalen Speicher Bezug. Weil ein im allgemeinen verwendeter Algorithmus für das Ersetzen des Cache-Speichers ein Least-Recently-Used-Algorithmus (LRU-Algorithmus) ist, gibt es eine erhöhte Chance, daß eine Ersetzung des Caches auftritt. Dieses wiederum führt zu einem vergrößerten Zusatzaufwand für die Bezugnahme auf die empfangenen Daten, wodurch sich die Leistung des Parallelverarbeitungssystems verschlechtert.
  • FR-A 0278196 offenbart ein Verfahren zum Betreiben von Cache-Speichern in einem Mehrprozessorsystem. Das System enthält mehrere Verarbeitungseinheiten. Jede der Verarbeitungseinheiten besitzt eine CPU mit einem ersten Cache-Speicher, der mit ihr verbunden ist. Diese Anordnung ist - über einen Puffer - mit einem zweiten Cache und einer Schnittstelle verbunden, die für die Verbindung mit anderen Prozessorelementen sorgt. Die Schnittstelle ist ferner mit einer Tabelle verbunden, die Informationen speichert, die sich auf die Inhalte der Caches beziehen.
  • Die Aufgabe der vorliegenden Erfindung ist es, einen Prozessor für ein Mehrprozessorsystem zu schaffen, in dem der Prozessor die von anderen Prozessorelementen (PEs) empfangenen Daten mit hoher Geschwindigkeit verwenden kann.
  • Diese Aufgabe wird gemäß den Merkmalen des Anspruchs 1 gelöst. Die abhängigen Ansprüche sind auf bevorzugte Ausführungsformen der Erfindung gerichtet
  • Die Erfindung ist auf ein Mehrprozessorsystem, z. B. ein Parallelverarbeitungssystem, anwendbar, das mehrere Cluster, wovon jeder einen Cache-Speicher enthält, einen oder mehrere unabhängig betreibbare Prozessoren mit einem lokalen Speicher, der durch einen oder mehrere Prozessoren geteilt wird, und ein Netz, das die mehreren Cluster untereinander verbindet, besitzt. Die Aufgaben dieser Erfindung werden durch Schaffung eines Pufferspeichers für die Sendedaten, der vorzugsweise ein vom Cache-Speicher separater Durchlaufpuffer (FIFO-Puffer) ist, und einen reservierten Empfangs-Cache-Speicher für die Empfangsverarbeitung gelöst. Wenn die Daten zu senden sind, die in dem Cache-Speicher gespeichert sind, werden sie direkt zu dem Sendepufferspeicher übertragen und in das Netz ausgesandt. Wenn aus dem Netz Daten zu empfangen sind, werden sie in dem Empfangs-Cache-Speicher gespeichert und dann aus dem Empfangs-Cache-Speicher ausgelesen, wenn der Prozessor auf die Daten Bezug nimmt.
  • Weil ein Pufferspeicher, der vorzugsweise ein FIFO-Puffer ist, für das Speichern der zu sendenden Daten verwendet wird, und weil ein Empfangs-Cache für die Empfangsdaten verwendet wird, ist es mit einem Mehrprozessorsystem unter Verwendung des Prozessors oder des Prozessorelements dieser Erfindung für den Prozessor möglich, direkt auf die Daten aus dem Cache-Speicher des Prozessors Bezug zu nehmen, wenn die Daten auszusenden sind; während die Daten direkt in dem Empfangs-Cache gespeichert werden können, wenn die Daten zu empfangen sind. Wenn folglich auf die empfangenen Daten Bezug zu nehmen ist, greift der Prozessor auf den Empfangs-Cache zu, um die Daten auszulesen, ohne auf den lokalen Speicher zuzugreifen, wodurch der Zusatzaufwand für die Bezugnahme auf die Daten ver mindert wird, wobei innerhalb des Systems eine Hochgeschwindigkeitskommunikation zwischen Prozessoren ermöglicht wird.
  • Fig. 1 ist ein Blockschaltplan, der die Konfiguration eines Prozessors oder Prozessorelements in einem Mehrprozessorsystem als eine Ausführungsform der Erfindung zeigt.
  • Fig. 2 ist ein Blockschaltplan, der die Konfiguration der Haupt-Cache-Steuerung in der Ausführungsform zeigt.
  • Fig. 3 ist ein Blockschaltplan, der die Konfiguration einer Empfangs-Cache-Steuerung in der Ausführungsform zeigt.
  • Fig. 4 ist ein Blockschaltplan, der die Konfiguration einer Speicherzugriffssteuerung in der Ausführungsform zeigt.
  • Fig. 5 ist ein Blockschaltplan, der die Konfiguration einer Speicherzugriffsanfrageschaltung MARC1 in der Ausführungsform zeigt.
  • Fig. 6 ist ein Blockschaltplan, der die Konfiguration einer Datenauswahlschaltung DSC1 in der Ausführungsform zeigt.
  • Fig. 7 ist ein Blockschaltplan, der die Konfiguration einer R/W-Merkerschaltung R/WFC1 in der Ausführungsform zeigt.
  • Fig. 8 ist ein Blockschaltplan, der die Konfiguration einer Speicherzugriffsanfrageschaltung MARC2 in der Ausführungsform zeigt.
  • Fig. 9 ist ein Blockschaltplan, der die Konfiguration einer Datenauswahlschaltung DSC2 in der Ausführungsform zeigt.
  • Fig. 10 ist ein Blockschaltplan, der die Konfiguration einer R/W-Merkerschaltung R/WFC2 in der Ausführungsform zeigt.
  • Fig. 11 ist ein Blockschaltplan, der die Konfiguration eines Prozessors oder Prozessorelements in einem Mehrprozessorsystem einer weiteren Ausführungsform der Erfindung zeigt.
  • Fig. 1 zeigt die Konfiguration eines Mehrprozessorsystems, wie z. B. eines Parallelverarbeitungssystems, das einen Prozessor, ein Prozessorelement oder einen Cluster gemäß einer Ausführungsform der Erfindung besitzt. In einem derartigen System würden viele Cluster verwendet werden, obwohl Fig. 1 zur Vereinfachung nur einen Cluster 1 zeigt. Ein Netz 2 würde die Cluster untereinander verbinden und Pakete von einem Cluster zu einem anderen übertragen.
  • Jeder Cluster enthält die folgenden Elemente. Ein (im folgenden als ein IP bezeichneter) Befehlsprozessor 10 führt ganzzahlige Berechnungen und Gleitkommarechnungen aus. Eine Sendeeinheit 11 sendet, angewiesen durch den IP 10, ein Paket, das Sendedaten enthält, an das Netz 2, indem sie die Daten holt und in einen Sendepufferspeicher überträgt, der vorzugsweise ein FIFO-Puffer (Durchlaufpuffer) 20 ist, um die Daten vorübergehend zu speichern, bevor sie gesendet werden. Die Empfangseinheit 12 empfängt die Datenpakete aus dem Netz, wobei die empfangenen Daten der Pakete in einem Empfangs-Cache-Speicher 22 gespeichert werden. Ein lokaler Speicher 23 speichert die durch den IP 10 zum Ausführen von Berechnungen verwende ten Daten und Befehle. Ein Haupt-Cache 21 speichert vorübergehend die Daten und die Befehle des lokalen Speichers 23. Auf den lokalen Speicher 23 wird durch die Speicherzugriffssteuerung 15 zugegriffen. Der Haupt-Cache 21 ist vorzugsweise ein direkt abgebildeter Einspeicher- Cache, wohingegen der Empfangs-Cache 22 entweder ein direkt abgebildeter Cache oder ein Cache vom Typ eines Assoziativspeichers, der einen LRU-Ersetzungsalgorithmus verwendet, sein kann.
  • Eine Anfragesteuerung 16 richtet den Fluß der Daten in die Haupt-Cache-Steuerung 13, die den Haupt-Cache 21 steuert, und in eine Empfangs-Cache-Steuerung 14, die den Empfangs-Cache 22 steuert. Speziell überträgt die Anfragesteuerung 16 eine ausgewählte Speicherzugriffsanfrage, die von einem der IP 10, der Sendeeinheit 11 und der Empfangseinheit 12 ausgeführt wird, an die Haupt-Cache- Steuerung 13 und die Empfangs-Cache-Steuerung 14. Die Anfragesteuerung 16 managt außerdem die Verwendung des Busses DTB1 durch den IP 10, die Sendeeinheit 11 und die Empfangseinheit 12.
  • Die folgenden Operationen werden durch den Cluster ausgeführt: (1) die durch die Empfangseinheit 12 empfangenen Daten werden in dem Empfangs-Cache 22 gespeichert; (2) wenn sich im Empfangs-Cache 22 Daten befinden, auf die durch den IP 10 zugegriffen wird, werden die Daten, auf die zugegriffen wird, zu dem IP 10 zurückgesandt und zum gleichen Zeitpunkt zu dem Haupt-Cache 21 übertragen; und (3) wenn sich im Haupt-Cache 21 durch den IP 10 angefragte Daten befinden, die zu senden sind, werden zum Senden die Daten in den Sende-FIFO-Puffer 20 in der Sendeeinheit 11 gelesen.
  • Fig. 2 zeigt die Konfiguration der Haupt-Cache-Steuerung 13. Eine Haupt-Cache-Trefferüberprüfungsschaltung 100 prüft, ob die durch die Adresse der REQ4 spezifizierten Daten in dem Haupt-Cache 21 vorhanden sind, wobei sie außerdem betreffs der Ersetzung überprüft. Eine Decodiereinrichtung 108 (decodieren 1) decodiert den CMD der REQ4. Eine Speicherzugriffsanfrageschaltung 109 (MARC1) erzeugt ein Leseanfragesignal R1 zum Lesen eines Blocks aus dem lokalen Speicher und ein Schreibanfragesignal W1 zum Schreiben eines Ersetzungsblocks in den lokalen Speicher. Die ausführliche Konfiguration ist in Fig. 5 gezeigt. Eine Wähleinrichtung 114 wählt gemäß der Steuerung durch die Adressenauswahlschaltung 110 (ASC 1) entweder die A1, bei der die Adresse der REQ4 ausgegeben wird, oder die A2, bei der die Ersetzungsadresse ausgegeben wird, aus und gibt die ausgewählte Adresse an die A3 aus. Normalerweise wird die A1 ausgewählt. Eine Datenauswahlschaltung 111 (DSC 1) steuert eine Verknüpfungsschaltung G1 I25, eine Verknüpfungsschaltung G2 116 und eine Verknüpfungsschaltung G3 117. Die ausführliche Konfiguration ist in Fig. 6 gezeigt. Eine R/W-Merkerschaltung 112 (R/WFC 1) erzeugt ein Lesesignal R3 und ein Schreibsignal W3 für den Haupt-Cache 21. Die ausführliche Konfiguration ist in Fig. 7 gezeigt. Eine CTC-Erzeugungsschaltung 113 (Erzeugungsschaltung für die Steuerung der Übertragung zwischen Caches 113) (CTC 1) erzeugt ein Anfragesignal für die Übertragung zwischen Caches CTC S1 für die Übertragung von dem Haupt-Cache 21 in den Empfangs-Cache 22.
  • Fig. 3 zeigt die Konfiguration der Empfangs-Cache-Steuerung 14. Eine Empfangs-Cache-Trefferüberprüfungsschaltung 200 prüft, ob die durch die Adresse der REQ4 spezifizierten Daten in dem Empfangs-Cache vorhanden sind, wobei sie außerdem betreffs der Ersetzung überprüft. Eine Decodiereinrichtung 208 (decodieren 2) decodiert den CMD der REQ4. Eine Speicherzugriffsanfrageschaltung 209 (MARC 2) erzeugt ein Leseanfragesignal R2 als Teil der Ausgabe L10 zum Lesen eines Blocks aus dem lokalen Speicher und ein Schreibanfragesignal W2 zum Schreiben eines Ersetzungsblocks in den lokalen Speicher. Die ausführliche Konfiguration ist in Fig. 8 gezeigt. Eine Wähleinrichtung 214 wählt gemäß der Steuerung durch die Adressenauswahlschaltung 210 (ASC 2) entweder die All, bei der die Adresse der REQ4 ausgegeben wird, oder die A12, bei der die Ersetzungsadresse ausgegeben wird, aus und gibt die ausgewählte Adresse an die A13 aus. Normalerweise wird die All ausgewählt. Eine Datenauswahlschaltung 211 (DSC2) steuert eine Verknüpfungsschaltung G4 215, eine Verknüpfungsschaltung G5 216 und eine Verknüpfungsschaltung G6 217. Die ausführliche Konfiguration ist in Fig. 9 gezeigt. Eine R/W-Merkerschaltung 212 (R/WFC2) erzeugt ein Lesesignal R4 und ein Schreibsignal W4 als Teil der Ausgabe L11 für den Empfangs-Cache 22. Die ausführliche Konfiguration ist in Fig. 10 gezeigt. Eine CTC-Erzeugungsschaltung 213 (CTC2) erzeugt ein Anfragesignal für die Übertragung zwischen Caches CTC S2 für die Übertragung von dem Empfangs- Cache 22 in den Haupt-Cache 21 als Teil des MRQ2.
  • Die weitere Erklärung des Betriebs der Trefferüberprüfungsschaltung wird mit Bezugnahme auf Fig. 2 und 3 ausgeführt, die die Trefferüberprüfungsschaltungen 100 bzw. 200 zeigen. In Fig. 2 (oder Fig. 3) speichert ein Register 101 (oder 201) die Speicheradresse Adresse, die in der Speicherzugriffsanfrage REQ4 enthalten ist. Eine Adressenmatrix 104 (oder 204) ist dem Haupt-Cache 21 (oder dem Empfangs-Cache 22) zugeordnet, die mehrere Einträge besitzt, die den Einträgen in dem Haupt-Cache 21 (oder dem Empfangs-Cache 22) entsprechen. Für die Blockdaten, die in irgendeinem Eintrag des Haupt-Caches 21 (oder 22) gespeichert sind, speichert die Adressenmatrix 104 (oder 204) den höchstwertigen Bitabschnitt (die Verzeichnisadresse DADR) der Speicheradresse des Blocks in einem Eintrag, der durch einen Serienadressenteil der Speicheradresse (Serien-ADR) spezifiziert ist - der aus den Zwischenbits der Speicheradresse des Blocks besteht - wobei sie außerdem ein Dirty-Bit D und ein Gültigkeitsbit V für diesen Eintrag besitzt. Das Dirty-Bit zeigt an, ob der Block modifiziert worden ist, nachdem er aus dem (lokalen) Hauptspeicher in den Cache-Speicher ausgelesen worden ist. Eine Schreibsteuerschaltung 103 (oder 203) ist für die Adressenmatrix 104 (oder 204) bereitgestellt. Wenn die Speicheradresse, die in der Speicherzugriffsanfrage REQ4 enthalten ist, in das Register 101 (oder 201) genommen wird, liest die Schreibsteuerschaltung 103 (oder 203) die Verzeichnisadresse DADR von einem Eintrag, der durch den Serienadressenteil (Serien- ADR) der Speicheradresse spezifiziert ist, und außerdem das Gültigkeitsbit V. Die Verzeichnisadresse DADR, die folglich ausgelesen wird, wird durch eine Vergleichsschaltung 101 (oder 207) mit der Verzeichnisadresse verglichen, die in dem Register 101 (oder 201) gespeichert ist, um zu entscheiden, ob ein Block, der die Daten enthält, die durch die Adresse in dem Register 101 (oder 201) spezifiziert sind, in dem Haupt-Cache 21 (oder dem Empfangs-Cache 22) vorhanden sind, wobei von einem UND- Gatter 106 (oder 206) ein Signal HIT ausgegeben wird, das anzeigt, ob die Adresse getroffen hat oder nicht. Wenn die Adresse nicht trifft und sowohl das Dirty-Bit D als auch das Gültigkeitsbit V "1" sind, wird von einem UND- Gatter 105 (oder 205) ein Signal RPL ausgegeben, das anzeigt, daß einer der Blöcke in dem Haupt-Cache 21 (oder dem Empfangs-Cache 22) in den lokalen Speicher zurückgeschrieben werden muß, (was eine Ersetzungsoperation genannt wird).
  • Der Betrieb und die Einzelheiten der Elemente des Clusters dieser Ausführungsform sind wie folgt.
  • 1. Schreiben der empfangenen Daten in den Empfangs-Cache durch die Empfangseinheit:
  • Die Daten in dem Netz werden in Paketen 30 gesendet und durch einen speziellen Cluster empfangen, der durch die Cluster-Nummer CL# identifiziert wird. Die Empfangsadresse RADR und die Länge LEN werden durch die Empfangseinheit 12 verwendet, um das Empfangen der Daten DATA (beginnend mit den ersten Daten von den DATA) in dem Paket durch Wiederholen der folgenden Verarbeitung auszuführen, bis LEN = 0 ist.
  • (1) CMD = RCV und Adresse = RADR werden an die REQ3 ausgegeben, wobei die ersten Daten aus DATA an den DTB1 ausgegeben werden.
  • (2) LEN = LEN - 1 und RADR = RADR + 1 werden gesetzt, wobei die nächsten Daten von den DATA (um 1 vorgerückt) an den DTB1 ausgegeben werden.
  • Für jeden Schritt der obigen Verarbeitung wählt die Anfragesteuerung 16 die REQ3, die den Speicherzugriff für die durch die Empfangseinheit empfangenen Daten anfragt, wobei sie das REQ3-Signal an die REQ4 ausgibt. Als Antwort führen die Empfangs-Cache-Steuerung 14 und die Haupt-Cache-Steuerung 13 die Trefferüberprüfung für die "Adresseº' der REQ4 aus. Die Empfangs-Cache-Steuerung 14 fängt die Daten auf, die an den DTB1 ausgegeben wurden.
  • Die Trefferüberprüfungen in der Empfangs-Cache-Steuerung 14 und der Haupt-Cache-Steuerung 13 werden durch die Trefferüberprüfungsschaltungen 100 (Fig. 2) bzw. 200 (Fig. 3) ausgeführt. In den Fig. 2 und 3 dienen die Register 101 und 201 zum Speichern der Speicheradresse "Adresse", die in der Speicherzugriffsanfrage REQ4 enthalten ist; wobei die Adressenmatrizen 104 und 204 für den Haupt-Cache 21 und den Empfangs-Cache 22 verwendet werden.
  • 1.1 Empfangs-Cache: Wenn im Empfangs-Cache und im Haupt- Cache ein Fehler vorliegt.
  • Wenn im Empfangs-Cache 22 (und im Haupt-Cache 21) ein Fehler vorliegt, führt die Empfangs-Cache-Steuerung 14 die folgende Verarbeitung aus, um den Fehlerblock aus dem lokalen Speicher 23 in den Empfangs-Cache 22 zu übertragen. Die Speicherzugriffsanfrageschaltung 209 erzeugt das Speicherleseanfragesignal R2 durch die Speicherleseanfrageschaltung 432 (MRRC2 nach Fig. 8). Die Adressenauswahlschaltung 210 (ASC2) steuert die Wähleinrichtung 214, um die Adresse der empfangenen Daten von der All an die A13 auszugeben.
  • In der R/W-Merkerschaltung 212 gibt die Empfangs-Cache- Schreibanfrageschaltung 453 (Fig. 10) das Schreibsignal W4 frei, um die Daten des Blocks in den Empfangs-Cache zu schreiben.
  • Die Datenauswahlschaltung 211 steuert die G4, die G5 und die G6 wie folgt, um den übertragenen Block und die empfangenen Daten zu schreiben. Das heißt, um den Pfad für das Schreiben der empfangenen Daten zu sichern, wird die RCV-Signalausgabe von der Decodiereinrichtung 208 an eine ODER-Schaltung 444 (Fig. 9), um eine G4-Steuerschaltung 443 zu veranlassen (Fig. 9), die G40 N freizugeben, und außerdem an eine ODER-Schaltung der G6-Steuerschaltung (448 nach Fig. 9), um die G60 N freizugeben, geliefert. Dann ist ein Pfad, um den aus dem lokalen Speicher gelesenen Block in den Empfangs-Cache zu schreiben, gesichert. Das heißt, weil der Empfangs-Cache die Zieldaten nicht trifft, wird die Ausgabe der RCV3-Blockübertragungs-Steuerschaltung 447 (Fig. 9) in eine ODER-Schaltung 446 (Fig. 9) eingespeist, um die G5-Steuerschaltung 445 (Fig. 9) zu veranlassen, die G50 N freizugeben. Dieses erlaubt, daß der Datenblock im lokalen Speicher 23 in den Empfangs-Cache 22 zu schreiben ist. Die Übertragung dieses Datenblocks zu dem Empfangs-Cache ist in dem Abschnitt "Haupt-Cache: Wenn im Empfangs-Cache und im Haupt-Cache ein Fehler vorliegt" mit. Bezug auf den Haupt- Cache weiter erörtert.
  • 1.1.1 Haupt-Cache: Wenn er trifft.
  • Wenn der Haupt-Cache 21 trifft, führt er die Übertragung zwischen Caches von dem Haupt-Cache 21 zu dem Empfangs- Cache 22 aus. Dieses erfolgt aus dem folgenden Grund. Im allgemeinen besitzen die empfangenen Daten oft aufeinanderfolgende Adressen, z. B. die ersten bis zu den letzten (LEN = 0) Daten von den DATA in einem Paket 30, wobei folglich erwartet werden kann, daß die nächsten empfangenen Daten in den gleichen Block wie die vorausgehend empfangenen Daten zu schreiben sind. Falls jedoch dieser Block in dem Haupt-Cache gespeichert gelassen wird, der ein direkt abgebildeter Cache ist, gibt es eine Möglichkeit, daß der Block durch die Speicherzugriffsanfrage vom IP 10 in den lokalen Speicher bewegt wird. Dieses kann sich außerdem in dem Empfangs-Cache ereignen, falls der Empfangs-Cache direkt abgebildet ist, falls jedoch der Empfangs-Cache vom Typ eines Assoziativspeichers ist, wird die Ersetzung des Blocks durch einen am Vor-kurzemam-wenigsten-gebraucht-Algorithmus gelenkt. Deshalb kann es in bestimmten Fällen vorzuziehen sein, eine Cache-Organisation vom Typ eines Assoziativspeichers zu verwenden. Auf jeden Fall wird die Systemleistung durch die Übertragung zwischen Caches des Blocks zu dem Empfangs- Cache gesichert werden.
  • Die Datenauswahlschaltung 111 sichert einen Pfad zur Übertragung zwischen Caches von dem Haupt-Cache 21 zu dem Empfangs-Cache 22. Das heißt, die Ausgabe einer RCV1- Blockübertragungs-Steuerschaltung 414 (Fig. 6) wird in eine ODER-Schaltung 421 (Fig. 6) eingespeist, um eine G2- Steuerschaltung 419 zu veranlassen, die G20 N freizugeben. Die Ausgabe einer RCV2-Blockübertragungs-Steuerschaltung 415 (Fig. 6) wird durch eine ODER-Schaltung 423 (Fig. 6) geleitet, um eine G3-Steuerschaltung 422 (Fig. 6) zu veranlassen, die G30 N freizugeben.
  • In der R/W-Merkerschaltung 112 erzeugt die Haupt-Cache- Leseanfrageschaltung 425 (Fig. 7) ein Lesesignal R3, das den Haupt-Cache 21 veranlaßt, einen der Adresse 1 entsprechenden Block auszugeben. Die Haupt-Cache-Trefferüberprüfungsschaltung 100 macht diesen Block in dem Haupt-Cache für die Cache-Anpassungssteuerung ungültig. Dieses sichert, daß der Haupt-Cache 21 und der Empfangs- Cache 22 nicht zum gleichen Zeitpunkt treffen werden.
  • Als nächstes erzeugt die CTC-Erzeugungsschaltung 113 das Anfragesignal für die Übertragung zwischen Caches CTC S1. Dann wird der aus dem Haupt-Cache 21 ausgelesene Block an den DTB2 ausgegeben. Die Speicherzugriffssteuerung 15 besitzt ihre Speicherzugriffs-Begrenzungsschaltung 300 (Fig. 4), die gemäß dem Signal CTC S1 das von der Empfangs-Cache-Steuerung 14 ausgegebene Speicherleseanfragesignal R2 unterdrückt. Die Empfangs-Cache-Steuerung 14 empfängt den durch die Haupt-Cache-Steuerung 13 auf den DTB2 ausgegebenen Block und schreibt ihn durch die L14 in den Empfangs-Cache 22. Dann werden die in 202 aufgefangenen Daten in den Empfangs-Cache 22 geschrieben. Diesem folgt ihre Registrierung in dem Empfangs-Cache durch die Empfangs-Cache-Trefferüberprüfungsschaltung 200.
  • 1.1.2 Haupt-Cache: Wenn im Empfangs-Cache und im Haupt- Cache ein Fehler vorliegt.
  • Wenn im Haupt-Cache 21 (und im Empfangs-Cache) ein Fehler vorliegt, erfolgt außer den Operationen, die im vorange henden Abschnitt mit Bezug auf den Empfangs-Cache erklärt sind, die folgende Operation. Die Datenauswahlschaltung 111 sperrt sowohl die G10 N, die G2ON als auch die G30 N, während die CTC-Erzeugungsschaltung 113 außerdem das CTC S1 sperrt. Weil das CTC S1 gesperrt ist und das R3 freigegeben ist, gibt in der Speicherzugriffssteuerung 15 die Speicherzugriffs-Begrenzungsschaltung 300 (Fig. 4) das Speicherleseanfragesignal R frei. Eine Adressenauswahlschaltung 304 (ASC3 nach Fig. 4) steuert eine Wähleinrichtung 303 (Fig. 4), um die A13 an die A23 auszugeben, wodurch der lokale Speicher 23 veranlaßt wird, einen der Adresse 2 entsprechenden Block auszugeben. Eine G7-Steuerschaltung 301 (Fig. 4) gibt außerdem eine Verknüpfungsschaltung G7 (302 nach Fig. 4) frei, um diesen Block an den DTB2 zu geben.
  • Die Empfangs-Cache-Steuerung 14 empfängt den Block, den die Speicherzugriffssteuerung 15 an den DTB2 gelegt hatte, wobei sie den Block durch die L14 in den Empfangs- Cache 22 schreibt. Die in 202 aufgefangenen Daten werden in den Empfangs-Cache 22 geschrieben. Dann registriert die Empfangs-Cache-Trefferüberprüfungsschaltung 200 die Daten in dem Empfangs-Cache 22.
  • 1.2 Empfangs-Cache: Wenn er trifft.
  • Um die in 202 aufgefangenen Daten in den Empfangs-Cache 22 zu schreiben, wird die folgende Operation ausgeführt. In der Datenauswahlschaltung 211 liefert die G4-Steuerschaltung 443 (Fig. 9) das RCV-Signal an die ODER-Schaltung 444 (Fig. 9), um die G40 N freizugeben. Die G6-Steuerschaltung 448 (Fig. 9) gibt die G60 N frei. Im Ergebnis ist ein Pfad für das Schreiben der Daten in den Empfangs- Cache 22 gesichert. Als nächstes gibt in der R/W-Merkerschaltung 212 die Empfangs-Cache-Schreibanfrageschaltung 453 (Fig. 10) das Schreibsignal W4 frei. Dann werden die in 202 aufgefangenen Daten in den Empfangs-Cache 22 geschrieben.
  • 1.3 Empfangs-Cache: Wenn es einen Ersetzungsblock gibt.
  • Zuerst wird der Ersetzungsblock zurück in den lokalen Speicher 23 geschrieben. Das heißt, in der Speicherzugriffsanfrageschaltung 209 gibt die Ersetzungsanfrageschaltung 431 (RRC2 nach Fig. 8) das Ersetzungsblock- Schreibanfragesignal W2 für die Speicherzugriffssteuerung 15 frei. Die Adressenauswahlschaltung 210 wählt eine Ersetzungsadresse RDADR und steuert die Wähleinrichtung 214, um die A12 an die A13 auszugeben. Dann gibt die R/W- Merkerschaltung 212 das Empfangs-Cache-Lesesignal R4 durch die Ersetzungssteuerschaltung 451 (RCC2 in Fig. 10) und die Empfangs-Cache-Leseanfrageschaltung 452 (Fig. 10) frei. In der Datenauswahlschaltung 211 gibt die G5-Steuerschaltung 445 (Fig. 9) die G50 N frei, während die G6- Steuerschaltung 448 (Fig. 9) die G60 N freigibt, um einen Pfad für das Schreiben des Ersetzungsblocks in den lokalen Speicher 23 zu sichern. Dann wird der Ersetzungsblock aus dem Empfangs-Cache 22 an den DTB2 ausgelesen.
  • Weil das Schreibanfragesignal W2 freigegeben ist, gibt in der Speicherzugriffssteuerung 15 die Speicherzugriffs-Begrenzungsschaltung 300 (Fig. 4) das Speicherschreibsignal W frei. Dann steuert die Adressenauswahlschaltung 304 (ASC3 nach Fig. 4) die Wähleinrichtung 303 (Fig. 4), um die A13 an die A23 auszugeben. Die G7-Steuerschaltung 301 (Fig. 4) schaltet die G7 ein, um den Ersetzungsblock, der sich auf dem DTB2 befindet, an die L9 auszugeben. Im Ergebnis wird der Ersetzungsblock in den lokalen Speicher 23 geschrieben.
  • Die anschließende Operation ist die gleiche wie die nach 1.1, weshalb ihre Erklärung ausgelassen wird.
  • 2. Speicherzugriff vom IP 10
  • Es gibt zwei Arten des Speicherzugriffs durch den IP 10 - das Laden und das Speichern. In den nachfolgenden Beschreibungen werden die Operationen, die nur der Ladeoperation zugeordnet sind, durch (L) identifiziert, während diejenigen, die der Speicheroperation zugeordnet sind, durch (S) identifiziert werden. (L) Der IP 10 spezifiziert die Adresse CMD = LD für die REQ1. (S) Der IP 10 spezifiziert die Adresse CMD = ST für die REQ1 und gibt die Daten aus, die im DTB1 zu speichern sind.
  • Die Anfragesteuerung 16 wählt die REQ1 aus, um die REQ1 an die REQ4 auszugeben. Dann führen die Empfangs-Cache- Steuerung 14 und die Haupt-Cache-Steuerung 13 die Trefferüberprüfung für die Adresse der REQ4 aus. (5) Die Haupt-Cache-Steuerung 13 fängt in 102 die Speicherdaten auf, die durch den IP 10 an den DTB1 angelegt wurden.
  • 2.1 Haupt-Cache: Wenn er trifft.
  • (L) Um die Daten von dem Haupt-Cache 21 an den IP 10 zu liefern, wird die folgende Operation ausgeführt. Die Adressenauswahlschaltung 110 steuert die Wähleinrichtung 114, um die A1 an die A3 auszugeben. Als nächstes gibt in der R/W-Merkerschaltung 112 die Haupt-Cache-Leseanfrageschaltung 425 (Fig. 7) das Haupt-Cache-Leseanfragesignal R3 frei.
  • Die folgende Operation wird ausgeführt, um einen Pfad für das Lesen der Daten aus dem Haupt-Cache und die Übertragung dieser an den IP 10 zu sichern. In der Datenauswahlschaltung 111 liefert die G1-Steuerschaltung 417 die Ausgabe der LD-Datenübertragung-Steuerschaltung 412 (Fig. 6) an die ODER-Schaltung 418 (Fig. 6), um die G10 N frei zugeben. Durch das Senden des LD-Signals von der Decodiereinrichtung 108 an die ODER-Schaltung 423 (Fig. 6), gibt die G3-Steuerschaltung 422 (Fig. 6) die G30 N frei. Im Ergebnis werden die Daten aus dem Haupt-Cache 21 über die L13 an den DTB1 gelesen. Der IP 10 empfängt die Daten von dem DTB1, folglich ist die Ladeoperation abgeschlossen. (S) Die Adressenauswahlschaltung 110 steuert die Wähleinrichtung 114, um die A1 an die A3 auszugeben. Als nächstes gibt die Haupt-Cache-Schreibanfrageschaltung 426 (Fig. 7) in der R/W-Merkerschaltung 112 das Haupt-Cache- Schreibanfragesignal W3 frei.
  • Dann wird die folgende Operation ausgeführt, um einen Pfad für das Schreiben der Daten in den Haupt-Cache 21 zu sichern. In der Datenauswahlschaltung 111 gibt die G1- Steuerschaltung 417 (Fig. 6) durch das Liefern des von der Decodiereinrichtung 108 ausgegebenen ST-Signals an die ODER-Schaltung 418 (Fig. 6) die G10 N frei. Ähnlich liefert die G3-Steuerschaltung 422 (Fig. 6) das ST-Signal an die ODER-Schaltung 423 (Fig. 6), um die G30 N freizugeben. Dieses bewirkt, daß die in 102 aufgefangenen Daten in den Haupt-Cache 21 zu schreiben sind. Dann setzt die Haupt-Cache-Trefferüberprüfungsschaltung 100 diesen Block als einen "Dirty-Block", der nicht mit dem lokalen Speicher 23 übereinstimmt.
  • 2.2 Haupt-Cache: Wenn im Empfangs-Cache und im Haupt-Cache ein Fehler vorliegt.
  • Wenn im Haupt-Cache 21 (und im Empfangs-Cache 22) ein Fehler vorliegt, wird ein Block, der aus dem lokalen Speicher 23 gelesen wird, durch die folgende Operation in dem Haupt-Cache 21 registriert. In der Speicherzugriffsanfrageschaltung 109 gibt die Speicherleseanfrageschaltung 402 (MRRC1 nach Fig. 5) das Speicherleseanfragesignal R1 frei. Die Adressenauswahlschaltung 110 steuert die Wähleinrichtung 114, um die A1 an die A3 auszugeben.
  • Die nächste Operation ist, einen Pfad zu sichern, um den aus dem lokalen Speicher 23 ausgelesenen Block in den Haupt-Cache 21 zu schreiben. In der Datenauswahlschaltung 111 gibt die G2-Steuerschaltung 419 die G20 N frei, indem sie die Ausgabe der LDST1-Blockübertragungs-Steuerschaltung 420 (Fig. 6) an die ODER-Schaltung 421 (Fig. 6) liefert. Die G3-Steuerschaltung 422 gibt durch das Liefern des von der Decodiereinrichtung 108 ausgegebenen LDs an die ODER-Schaltung 423 (Fig. 6) die G30 N frei. Dann hat die Haupt-Cache-Schreibanfrageschaltung 426 (Fig. 7) der R/W-Merkerschaltung 112 das Schreibanfragesignal W3 freigegeben. Sobald der Block in den Haupt-Cache geschrieben worden ist, ist die Operation ähnlich zu der vorangehenden, wenn ein Haupt-Cache-Treffer vorliegt, wobei sie wie folgt mit Bezug auf den Empfangs-Cache erklärt ist.
  • 2.2.1 Empfangs-Cache: Wenn im Empfangs-Cache und im Haupt-Cache ein Fehler vorliegt.
  • Wenn im Empfangs-Cache und im Haupt-Cache ein Fehler vorliegt, sperrt die Empfangs-Cache-Steuerung 14 alle Verknüpfungsschaltungen G40 N, G50 N und G60 N. Zum gleichen Zeitpunkt sperrt die CTC-Erzeugungsschaltung 213 das CTC S2. Weil in der Speicherzugriffssteuerung 15 das R1 freigegeben und das CTC S2 gesperrt ist, gibt die Speicherzugriffs-Begrenzungsschaltung 300 (Fig. 4) das Speicherleseanfragesignal R frei. Die Adressenauswahlschaltung 304 (ASC3 nach Fig. 4) steuert die Wähleinrichtung 303 (Fig. 4), um die A3 an die A23 auszugeben. Dieses bewirkt, daß der Block aus dem lokalen Speicher 23 an die L9 zu lesen ist. Dann schaltet die G7-Steuerschaltung 301 (Fig. 4) die G7 ein, um den Block an den DTB2 zu legen. Die Haupt-Cache-Steuerung 13 empfängt den Block von dem DTB2 und schreibt ihn über die L13 in den Haupt-Cache 21.
  • Die Haupt-Cache-Trefferüberprüfungsschaltung 100 registriert diesen Block als einen "Clean-Block" in dem Haupt-Cache 21.
  • (L) Um die Daten an den IP 10 zu liefern, wird die folgende Operation ausgeführt. In der Datenauswahlschaltung 111 gibt die G1-Steuerschaltung 417, indem sie die Ausgabe der LD-Datenübertragungs-Steuerschaltung 412 (Fig. 6) an die ODER-Schaltung 418 (Fig. 6) weiterleitet, die G10 N frei, um die Daten auf den DTB1 zu legen. Der IP 10 nimmt die auf den DTB1 gelegten Daten, wodurch die Ladeoperation abgeschlossen ist.
  • (S) Um die Daten, die in 102 aufgefangen wurden, als nächstes in den Haupt-Cache 21 zu schreiben, ist die folgende Operation erforderlich. In der Datenauswahlschaltung 111 gibt die G1-Steuerschaltung 417 (Fig. 6) die G10 N frei, indem sie das von der Decodiereinrichtung 108 ausgegebene Signal ST in die ODER-Schaltung 418 (Fig. 6) weiterleitet, wodurch sie bewirkt, daß die in 102 aufgefangenen Daten in den Haupt-Cache 21 zu schreiben sind. Dann setzt die Haupt-Cache-Trefferüberprüfungsschaltung 100 diesen Block als einen "Dirty-Block".
  • 2.2.2 Empfangs-Cache: Wenn er trifft.
  • Die Empfangs-Cache-Steuerung 14 liest einen Block aus dem Empfangs-Cache 22. (L) Die Daten werden durch eine Übertragung zwischen Caches an den IP 10 geliefert.
  • Die folgende Operation wird für die Übertragung zwischen Caches von dem Empfangs-Cache 22 zu dem Haupt-Cache 21 ausgeführt. Die Adressenauswahlschaltung 210 steuert die Wähleinrichtung 214, um die All an die A13 auszugeben. (L) In der Datenauswahlschaltung 211 gibt die G4-Steuerschaltung 443 (Fig. 9) die G40 N frei, indem sie die Aus gabe der Datenübertragungs-Steuerschaltung 441 (Fig. 9) an die ODER-Schaltung 444 (Fig. 9) weiterleitet.
  • Durch das Liefern der Ausgabe der LDST2-Blockübertragungs-Steuerschaltung 442 (Fig. 9) an die ODER-Schaltung 446 (Fig. 9) gibt die G5-Steuerschaltung 445 (Fig. 9) die G50 N frei. Dann gibt die G6-Steuerschaltung 448 (Fig. 9) die G60 N frei. Als nächstes gibt in der R/W-Merkerschaltung 212 die Empfangs-Cache-Leseanfrageschaltung 452 (Fig. 10) das Lesesignal R4 frei.
  • Die obigen Operationen bewirken, daß der Block aus dem Empfangs-Cache 22 auszulesen ist. (L) Die Daten in dem Block werden über den DTB1 an den IB 10 geliefert. Der IP 10 empfängt die Daten von dem DTB1, folglich ist die Ladeoperation abgeschlossen.
  • In der Empfangs-Cache-Steuerung 14 gibt die CTC-Erzeugungsschaltung 213 das CTC S2 frei und legt den Block an den DTB2, um die Übertragung zwischen Caches auszuführen. Für die Cache-Anpassungssteuerung wird dieser Block in dem Empfangs-Cache ungültig gemacht, um zu sichern, daß die Haupt-Cache-Steuerung 13 und die Empfangs-Cache- Steuerung 14 nicht zum gleichen Zeitpunkt treffen. Weil die Speicherzugriffssteuerung 15 das R1 freigegeben hat und das CTC S2 freigegeben ist, unterdrückt die Speicherzugriffs-Begrenzungsschaltung 300 (Fig. 4) die Speicherleseanfrage.
  • Die Haupt-Cache-Steuerung 13 schreibt den Block, der durch die Empfangs-Cache-Steuerung 14 auf den DTB2 gelegt wurde, über die L13 in den Haupt-Cache 21. Weil das CTC S2 freigegeben ist, registriert die Haupt-Cache-Trefferüberprüfungsschaltung 100 diesen Block als einen "Dirty-Block", der nicht mit dem lokalen Speicher 23 übereinstimmt. (L) Weil die Ausgabe der LD- Datenübertragungs-Steuerschaltung 412 durch das CTC S2 gesperrt ist, sperrt in der Datenauswahlschaltung 111 die G1-Steuerschaltung 417 die G10 N, um die G1 auszuschalten, um doppelt zu blockieren, daß die Daten an den IP 10 geliefert werden.
  • (S) Die folgende Operation wird ausgeführt, um die in 102 aufgefangenen Daten in den Haupt-Cache 21 zu schreiben. In der Datenauswahlschaltung 111 gibt die G1-Steuerschaltung 417 (Fig. 6) die G10 N frei, indem sie das von der Decodiereinrichtung 108 ausgegebene ST-Signal an die ODER-Schaltung 418 (Fig. 6) weiterleitet, wodurch veranlaßt wird, daß die in 102 aufgefangenen Daten in den Haupt-Cache 21 zu schreiben sind.
  • 2.3 Haupt-Cache: Wenn es einen Ersetzungsblock gibt.
  • Zuerst wird der Ersetzungsblock in den lokalen Speicher 23 zurückgeschrieben. In der Speicherzugriffsanfrageschaltung 109 gibt die Ersetzungsanfrageschaltung 401 (RRC1 nach Fig. 5) das Ersetzungsblock-Schreibanfragesignal W1 für die Speicherzugriffssteuerung 15 frei. Die Adressenauswahlschaltung 110 wählt die Ersetzungsadresse RDADR aus und steuert die Wähleinrichtung 114, um die A2 an die A3 auszugeben. Die R/W-Merkerschaltung 112 gibt durch die Ersetzungssteuerschaltung 424 (RCC1 nach Fig. 7) und die Haupt-Cache-Leseanfrageschaltung 425 (Fig. 7) das Haupt-Cache-Leseanfragesignal R3 frei. Dann gibt die Datenauswahlschaltung 111 die Verknüpfungsschaltung G20 N durch die G2-Steuerschaltung 419 (Fig. 6) und die Verknüpfungsschaltung G30 N durch die G3-Steuerschaltung 422 (Fig. 6) frei, auf diese Weise wird ein Pfad zum Schreiben des Ersetzungsblocks in den lokalen Speicher 23 gesichert. Der Ersetzungsblock wird dann aus dem Haupt- Cache 21 an den DTB2 ausgelesen.
  • Weil das W1 freigegeben ist, gibt in der Speicherzugriffssteuerung 15 die Speicherzugriffs-Begrenzungsschaltung 300 (Fig. 4) das Speicherschreibsignal W frei. Die Adressenauswahlschaltung 304 (ASC3 nach Fig. 4) steuert die Wähleinrichtung 303 (Fig. 4), um die A3 an die A23 auszugeben. Dann schaltet die G7-Steuerschaltung 301 (Fig. 4) die G7 ein, um den Ersetzungsblock, der sich auf dem DTB2 befindet, an die L9 auszugeben. Im Ergebnis wird der Ersetzungsblock durch die L15 in den lokalen Speicher 23 geschrieben.
  • Die nachfolgende Operation ist die gleiche wie 2.2, folglich wird ihre Erklärung weggelassen.
  • 3. Sendeanfrage vom IP 10
  • Wenn der IP 10 Daten zu anderen Clustern sendet, spezifiziert er die Ziel-Cluster-Nummer CL#, eine Sendeadresse SADR, eine Empfangsadresse RADR und eine Sendedatenlänge LEN in L1, wobei er dann die Sendeeinheit 11 startet. Die Sendeeinheit 11 speichert zuerst die CL#, die RADR und die LEN, die er von dem IP 10 über die L1 empfangen hat, in dem Paket 30. Dann wiederholt die Sendeeinheit 11 die folgende Operation, bis die LEN 0 wird, um die Sendedaten zu lesen und sie in dem Paket zu speichern.
  • (1) Setze in der REQ2 CMD = SND und Adresse = SADR, um eine Speicherzugriffsanfrage auszuführen.
  • (2) Setze LEN = LEN - 1 und SADR = SADR + 1.
  • Auf das Lesen aller Übertragungsdaten gibt die Sendeeinheit 11 das Paket 30 in das Netz 2 aus.
  • Um die Sendeanfrage zu initiieren, wird die REQ2 durch die Anfragesteuerung 16 ausgewählt und an die REQ4 ausgegeben. Dann führen die Empfangs-Cache-Steuerung 14 und die Haupt-Cache-Steuerung 13 die Trefferüberprüfung für die Adresse der REQ4 aus. Der Rest der Operation ist mit Bezug auf die Elemente des Clusters wie folgt erklärt.
  • 3.1 Haupt-Cache: Wenn er trifft.
  • Wie in 2.1 im Fall der Ladeoperation werden die Daten von dem Haupt-Cache 21 an den DTB1 geliefert, wobei die Sendeeinheit 11 diese Daten liest. Diese Operation wird nicht weiter in allen Einzelheiten beschrieben.
  • 3.2 Haupt-Cache: Wenn im Empfangs-Cache und im Haupt-Cache ein Fehler vorliegt.
  • Weil die Ausgabe SND der Decodiereinrichtung 108 freigegeben ist, führt die Haupt-Cache-Steuerung 13 eine Leseanfrage an den lokalen Speicher aus. Der auf diese Weise gelesene Block wird jedoch nicht in dem Haupt-Cache 21 registriert. Dieses ist so, weil es eine Möglichkeit gibt, daß der Block, auf den der IP 10 für die Registrierung in dem Haupt-Cache Bezug nimmt, ersetzt werden kann. Wenn eine Ersetzungsoperation erfolgt, nimmt der Zusatzaufwand für den Speicherzugriff für den IP 10 zu, wodurch sich die Leistung verschlechtert.
  • 3.2.1 Empfangs-Cache: Wenn im Empfangs-Cache und im Haupt-Cache ein Fehler vorliegt.
  • Zuerst steuert die Adressenauswahlschaltung 110 die Auswahleinrichtung 114, um die A1 an die A3 auszugeben. Dann gibt in der Speicherzugriffsanfrageschaltung 109 die Speicherleseanfrageschaltung 402 (MRRC1 nach Fig. 5) das Speicherleseanfragesignal R1 für die Speicherzugriffssteuerung 15 frei.
  • Die Empfangs-Cache-Steuerung 14 sperrt sowohl die G40 N, die G50 N als auch die G60 N. Zu diesem Zeitpunkt sperrt die CTC&sub2;-Erzeugungsschaltung 213 das Anfragesignal für die Übertragung zwischen Caches CTC S2.
  • Weil das R1 freigegeben und das CTC S2 gesperrt ist, gibt in der Speicherzugriffssteuerung 15 die Speicherzugriffs- Begrenzungsschaltung 300 (Fig. 4) das Speicherleseanfragesignal R frei, wobei die Adressenauswahlschaltung 304 (ASC3 nach Fig. 4) die Wähleinrichtung 303 (Fig. 4) steuert, um die A13 an die A23 auszugeben. Im Ergebnis wird der Block aus dem lokalen Speicher 23 ausgelesen. Dann schaltet die G7-Steuerschaltung 301 (Fig. 4) die G7 ein, um diesen Block an den DTB2 zu legen.
  • Weil das CTC S2 gesperrt ist, führt die Haupt-Cache- Steuerung 13 die folgende Operation aus, um einen Pfad zu sichern, um die Daten an die Sendeeinheit zu liefern. In der Datenauswahlschaltung 111 wird die Ausgabe der SND- Datenübertragungs-Steuerschaltung 411 (Fig. 6) in die ODER-Schaltung 418 (Fig. 6) eingespeist, wodurch die G1- Steuerschaltung 417 (Fig. 6) veranlaßt wird, die G10 N freizugeben. Die Ausgabe der SND1-Blockübertragungs-Steuerschaltung 413 (Fig. 6) wird in die ODER-Schaltung 421 eingespeist, um die G2-Steuerschaltung 419 zu veranlassen, die G20 N freizugeben. Zu diesem Zeitpunkt veranlaßt die SND2-Blockübertragungs-Steuerschaltung 416 (Fig. 6) die G3-Steuerschaltung 422 (Fig. 6), die G30 N zu sperren, um zu verhindern, daß der Block in den Haupt-Cache 21 geschrieben wird. Auf diese Weise wird der an den DTB2 gelegte Block in 202 aufgefangen, wobei die angefragten Daten an den DTB1 gelegt werden. Die Sendeeinheit 11 empfängt die Daten von dem DTB1 und speichert sie vorübergehend in dem Sende-FIFO-Puffer 20.
  • 3.2.2 Empfangs-Cache: Wenn er trifft.
  • Während des Sendens wird die Übertragung zwischen Caches von dem Empfangs-Cache 22 zu dem Haupt-Cache 21 nicht ausgeführt. Dieses ist so, weil, wenn eine Ersetzungsoperation erfolgt, der Zusatzaufwand für den Speicherzugriff für den IP 10 zunimmt, wodurch die Leistung verschlechtert wird. Ferner ist es wohlüberlegt, daß auf die zu sendenden Daten wahrscheinlich nicht durch den IP 10 Bezug genommen wird, so daß es aus diesem Grund keinen Vorteil durch die Ausführung der Übertragung zwischen Caches gibt. Weil es keine Übertragung zwischen Caches gibt, wird der Block in dem Empfangs-Cache 22 nicht ungültig gemacht.
  • Die Empfangs-Cache-Steuerung 14 führt die folgende Operation aus, um die Daten an die Sendeeinheit 11 zu liefern. Das heißt, die Adressenauswahlschaltung 210 steuert die Wähleinrichtung 214, um die All an die A13 auszugeben. Als nächstes gibt in der R/W-Merkerschaltung 212 die Empfangs-Cache-Leseanfrageschaltung 452 (Fig. 10) das Leseanfragesignal R4 frei. Dann wird ein Pfad gesichert, um die Daten von dem Empfangs-Cache 22 zu der Sendeeinheit 11 zu übertragen. In der Datenauswahlschaltung 211 gibt die G4-Steuerschaltung 443 (Fig. 9) die G40 N frei, indem sie die Ausgabe der Datenübertragungs-Steuerschaltung 441 (Fig. 9) an die ODER-Schaltung 444 liefert. Die G6-Steuerschaltung 448 (Fig. 9) gibt die G60 N frei, um aus dem Empfangs-Cache 22 zu lesen und die Daten an den DTB1 zu legen. Die Sendeeinheit 11 empfängt die Daten von dem DTB1 und speichert sie vorübergehend in dem Sende-FIFO- Puffer 20.
  • Fig. 11 ist ein schematischer Plan einer weiteren Ausführungsform der Erfindung, der einen Cluster 1-1 zeigt, der einer von vielen Clustern sein soll, die in einem Mehrprozessorsystem arbeiten, wie z. B. einem Parallelverarbeitungssystem, wie z. B. bei der vorausgehenden Ausführungsform. Jeder Cluster 1-1 gemäß dieser Ausführungsform besitzt eine Mikroprozessoreinheit 3 und eine Kommunika tionsverarbeitungseinheit 4, die vorzugsweise physikalisch voneinander getrennt sind, und die miteinander durch einen gemeinsamen Kommunikationsbus B1 kommunizieren.
  • Der Cluster 1-1 arbeitet im Hinblick auf seine Verbindung mit einem Netz 2-1 ähnlich wie der Cluster der vorausgehenden Ausführungsform, die Einheiten 3, 4 führen jedoch separate Funktionen aus, die sich auf das Empfangen und Senden der Datenpakete 30-1, die durch die Kommunikationsverarbeitungseinheit 3 abgewickelt werden, und auf das Ausführen von Berechnungen, das durch die Mikroprozessoreinheit 4 ausgeführt wird, beziehen.
  • Im besonderen besitzt die Kommunikationsverarbeitungseinheit 4 Sende- und Empfangseinheiten 11 bzw. 12, die die Netzkommunikationsfunktionen ausführen, die sich auf das Senden und Empfangen von Daten durch das Netz beziehen. Die Mikroprozessoreinheit 4 besitzt einen IP 10-1 zum Ausführen von Berechnungen und zum Holen der Daten, die über das Netz auszusenden sind. Beide Einheiten greifen auf den lokalen Speicher 23-1 zu, der durch die Speicherzugriffssteuerung 15 mit dem Kommunikationsbus B1 verbunden ist.
  • Der Empfangs-Cache 22-1 ist in dieser Ausführungsform ein Teil der Kommunikationsverarbeitungseinheit 4, während der Haupt-Cache 21-1 ein Teil der Mikroprozessoreinheit 3 ist, wobei deshalb die Caches voneinander getrennt sind. Die Haupt-Cache-Steuerung 13-1 und die Empfangs-Cache- Steuerung 14-1 sind für die jeweiligen Caches bereitgestellt, um ihren Betrieb zu steuern.
  • Die durch den Cluster 1-1 ausgeführten Operationen werden ähnlich wie diejenigen des Clusters der ersten Ausführungsform abgewickelt. In dieser Ausführungsform stellen die Haupt-Cache- und Empfangs-Cache-Steuerungen die Funktionen der Anfragesteuerung bereit, die in der vorhergehenden Ausführungsform durch die Anfragesteuerung 16 ausgeführt wird, wobei sie außerdem die Datenübertragungsfunktionen bereitstellen, auf die in der folgenden Beschreibung der Operationen, die durch den Cluster 1-1 ausgeführt werden, Bezug genommen wird. Die Einzelheiten dieser Steuerfunktionen sind nicht erklärt, weil sie in einer ähnlichen Weise wie in der vorausgehenden Ausführungsform auszuführen sind.
  • Wenn ein Datenpaket 30-1 von dem Netz 2-1 empfangen wird, wird das Paket der Verarbeitung durch die Empfangseinheit 12-1 unterworfen. Die Daten werden direkt in dem Empfangs-Cache 22-1 gespeichert, falls es einen Empfangs-Cache-Treffer gibt. Falls im Empfangs-Cache ein Fehler vorliegt, während der Haupt-Cache 21-1 trifft, wird über den Kommunikationsbus B1 eine Übertragung zwischen Caches ausgeführt.
  • Für die Übertragung zwischen Caches wird der Block aus dem Haupt-Cache 21-1 durch eine durch die Haupt-Cache- Steuerung 13-1 auf der Leitung L14 gesendete Leseanfrage gelesen. Die Daten werden über die L15 an die Steuerung 13-1 und über die L23 an den Bus B2 übertragen. Dann sichert die Empfangs-Cache-Steuerung einen Pfad für die Übertragung des Blocks von dem Bus B2 über die L27, wobei sie ferner ein Schreibanfragesignal über die L16 an den Empfangs-Cache liefert, um die Daten über die L17 zu schreiben.
  • Falls ein Fehler in beiden Caches vorliegt, wenn die Daten empfangen werden, wird der Block durch die Speicherzugriffssteuerung 15-1 aus dem lokalen Speicher 23-1 gelesen und durch den Bus B1 zu der Empfangs-Cache-Steuerung 14-1 übertragen. Dann wird der Block in dem Emp fangs-Cache 22-1 gespeichert.
  • Der Zugriff auf die Daten durch den IP 10-1 wird, wenn es einen Haupt-Cache-Treffer gibt, innerhalb der Mikroprozessoreinheit 3 durch die Haupt-Cache-Steuerung 13-1 ausgeführt. In diesem Fall werden die Daten von dem Haupt- Cache über die L15 und die L20 zu dem IP 10-1 übertragen. Falls im Haupt-Cache ein Fehler vorliegt, während der Empfangs-Cache trifft, wird in einer Weise, die zu der vorausgehend erörterten ähnlich ist, eine Übertragung zwischen Caches ausgeführt. Falls in beiden Caches ein Fehler vorliegt, wird der Block aus dem lokalen Speicher gelesen und in den 1-Iaupt-Cache geschrieben.
  • Für das Senden der Daten an das Netz 2-1 wird der Datenblock von dem Empfangs-Cache 22-1 (wenn es einen Treffer gibt), vorübergehend an den FIFO-Puffer 20-1 und dann an die Sendeeinheit 11-1 übertragen. In diesem Fall gibt es keine Übertragung zwischen Caches. Falls es einen Treffer in dem Haupt-Cache gibt, werden die Daten von dem Haupt- Cache 21-1 an die Empfangs-Cache-Steuerung 14-1 und von dort zu dem FIFO-Puffer 20-1 gesendet, ohne die Daten in dem Empfangs-Cache 22-1 zu registrieren. Sobald sich die Daten in dem FIFO-Puffer 20-1 befinden, legt die Sendeeinheit 11-1 als Antwort auf ein durch die Empfangs-Cache-Steuerung 14-1 über die L1-1 gesendetes Steuersignal die Daten in Paketform für die Übertragung an das Netz 2-1.
  • Falls sich die zu sendenden Daten in dem lokalen Speicher befinden, d. h., in beiden Caches ein Fehler vorliegt, werden die Daten an den FIFO-Puffer 20-1 übertragen und in der gleiche Weise an des Netz 2-1 ausgesandt, ohne daß sie in dem Haupt-Cache 21 registriert werden.
  • Für jede Ausführungsform der Erfindung kann ein Prozessor oder ein Cluster, der in einer Kommunikationsumgebung zwischen Prozessoren verwendet wird, wie in einem Parallelverarbeitungssystem die Daten direkt aus dem Cache- Speicher, falls er trifft, durch einen Pufferspeicher der Sendeeinheit an das Netz herausgeben und dadurch den Zusatzaufwand für die Datenbezugnahme des Prozessors während der Sendeprozedur minimieren. Alternativ können die zu sendenden Daten direkt zu dem Pufferspeicher der Sendeeinheit übertragen und an des Netz ausgesandt werden. Während des Empfangens von Daten aus dem Netz werden die empfangenen Daten in dem Empfangs-Cache gespeichert, von dem auf die Daten Bezug genommen wird, dementsprechend wird der Zusatzaufwand für die Bezugnahme auf die empfangenen Daten minimiert.

Claims (14)

1. Prozessor für ein Mehrprozessorsystem, der mit einem Netzwerk verbindbar ist, mit
einem Befehlsprozessor (10) zum Ausführen von Befehlen, einem lokalen Speicher (23) zum Speichern von durch den Befehlsprozessor (10) auszuführenden Befehlen und dadurch zu verarbeitenden Daten, und einer Zugriffssteuerung (15) zur Steuerung des Zugriffs auf den lokalen Speicher (23), einem Haupt-Cache (21) zum Speichern eines Teils der im lokalen Speicher (23) gespeicherten Daten und einer Haupt-Cache-Steuerung (13), die mit dem Haupt-Cache, dem Befehlsprozessor und der Zugriffssteuerung zur Steuerung des Haupt-Caches (21) verbunden ist,
einer Sendeeinheit (11), die mit dem Haupt-Cache verbunden ist, um Daten vom Befehlsprozessor (10) an das Netzwerk (2) zu senden, und einer Empfangseinheit (12) zum Empfangen von Daten vom Netzwerk (2),
einem Empfangs-Cache (22) und einer Empfangs-Cache-Steuerung (14), die mit dem Empfangs-Cache, der Empfangseinheit, dem Befehlsprozessor und der Zugriffssteuerung verbunden ist, um den Empfangs-Cache (22) zu steuern, so daß der Empfangs-Cache (22) vorübergehend von der Empfangseinheit (12) empfangene Daten speichert, die im lokalen Speicher (23) zu speichern sind, wobei die Haupt-Cache-Steuerung (13) und die Empfangs-Cache- Steuerung (14) beide entweder auf eine Datenleseanfrage oder eine Datenschreibanfrage ansprechen, die vom Befehlsprozessor (10) geliefert wird, um das Lesen der durch die Leseanfrage angefragten Daten entweder vom Haupt-Cache (21) oder vom Empfangs-Cache (22) zu steuern, oder um das Schreiben der durch die Schreibanfrage angefragten Daten in den Haupt-Cache (21) zu steuern.
2. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Haupt-Cache-Steuerung (13) und die Empfangs-Cache- Steuerung (14) jeweils eine Trefferüberprüfungs-Schaltung (100, 200) haben, um zu bestimmen, ob im Haupt-Cache (21) und im Empfangs-Cache (22) ein Treffer oder ein Fehler vorliegt, wobei die Empfangs-Cache-Steuerung (14) Daten, die von der Empfangseinheit (12) empfangen wurden, direkt in den Empfangs-Cache (22) überträgt, wenn im Empfangs- Cache (22) bezüglich der empfangenen Daten ein Treffer vorliegt, und wobei dann, wenn bezüglich der empfangenen Daten ein Fehler im Empfangs-Cache (22) und ein Treffer im Haupt-Cache (21) vorliegt, die Steuerungen (13, 14) des Haupt-Caches und des Empfangs-Caches eine Übertragung zwischen Caches ausführen, um einen getroffenen Block im Haupt-Cache (21) in den Empfangs-Cache (22) zu übertragen, und wobei die Empfangs-Cache-Steuerung (14) die empfangenen Daten nach der Übertragung zwischen den Caches die empfangenen Daten in den Empfangsspeicher überträgt.
3. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Steuerungen (13, 14) des Haupt-Caches und des Empfangs-Caches Trefferüberprüfungs-Schaltungen (100, 200) haben und auf eine Schreibanfrage hin, die für von der Empfangseinheit empfangene Daten von der Empfangseinheit (12) erzeugt wurde, wobei die Trefferüberprüfungs-Schaltungen (100, 200) bestimmen, ob im Haupt-Cache (21) und im Empfangs-Cache (22) jeweils im Hinblick auf die empfangenen Daten ein Treffer oder ein Fehler vorliegt, wobei dann, wenn sowohl im Haupt-Cache (21) als auch im Empfangs-Cache (22) ein Fehler vorliegt, die Empfangs- Cache-Steuerung (14) die Adresse eines Blocks, zu dem die empfangenen Daten gehören, und eine Leseanfrage für den Block an die Zugriffssteuerung (15) sendet, um den im lokalen Speicher (23) gespeicherten Block zu lesen, und den durch die Zugriffssteuerung (23) ausgelesenen Block an den Empfangs-Cache (22) überträgt.
4. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß der Befehlsprozessor (10), der Haupt-Cache (21) und die Haupt-Cache-Steuerung (13) Teil einer Mikroprozessoreinheit (3) sind, wobei die Sendeeinheit (11), die Empfangseinheit (12) und die Empfangs-Cache-Steuerung (14) und der Empfangs-Cache (22) Teil einer Kommunikationsverarbeitungseinheit (4) sind, und wobei der Prozessor außerdem einen Kommunikations-Bus (B1) aufweist, der zwischen die Mikroprozessoreinheit (3) und die Kommunikativnspro zessoreinheit (4) geschaltet ist, und wobei der lokale Speicher (23) über die Zugriffssteuerung (15) (Fig. 11) mit dem Kommunikations-Bus (B1) verbunden ist.
5. Prozessor nach Anspruch 1, weiter gekennzeichnet durch eine Einrichtung in der Sendeeinheit (11) zum Zusammenstellen von Daten zu Paketen zur Übertragung an ein Netzwerk (2), und einen Pufferspeicher (20), der mit der Paketzusammenstellungseinrichtung verbunden ist, so daß dann, wenn Daten zum Netzwerk (2) zu senden sind, der Befehlsprozessor (10) zu sendende Daten entweder vom Haupt- Cache (21) oder vom Empfangs-Cache (22) holt und die gesendeten Daten zum Pufferspeicher (20) überträgt, und wobei die Paketzusammenstellungseinrichtung die zu sendenden Daten vom Pufferspeicher (20) empfängt und die Daten als Pakete zum Netzwerk (2) sendet.
6. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Haupt-Cache-Steuerung (13) und die Empfangs-Cache- Steuerung (14) eine Trefferüberprüfungsschaltung (100, 200) jeweils haben, um zu bestimmen, ob im Haupt-Cache (21) und im Empfangs-Cache (22) ein Treffer oder ein Fehler vorliegt, wenn zum Netzwerk zu sendende Daten vom Befehlsprozessor (10) geholt werden, wobei eine Trefferüberprüfung in der Haupt-Cache-Steuerung (13) und der Empfangs-Cache-Steuerung (14) durch die jeweiligen Trefferüberprüfungsschaltungen (100, 200) ausgeführt werden, und wobei dann, wenn im Empfangs-Cache (22) ein Treffer auftritt, die zu sendenden Daten an die Sendeeinheit (11) vom Empfangs-Cache (22) übertragen werden, wobei die zu sendenden Daten im Empfangs-Cache (22) nicht ungültig gemacht werden.
7. Prozessor nach Anspruch 6, dadurch gekennzeichnet, daß eine Übertragung zwischen Caches durch die Steuerungen (13, 14) des Haupt-Caches und des Empfangs-Caches ausgeführt wird, so daß die zu sendenden Daten vom Empfangs- Cache zur Haupt-Cache-Steuerung (13) übertragen werden, wobei dann die zu sendenden Daten, die im Empfangs-Cache (22) gespeichert sind, ungültig gemacht werden.
8. Prozessor nach Anspruch 6, dadurch gekennzeichnet, daß dann, wenn sowohl im Haupt-Cache (21) als auch im Empfangs-Cache (22) ein Fehler auftritt, die zu sendenden Daten vom lokalen Speicher (23) geholt und direkt an die Sendeeinheit (11) übertragen werden, ohne entweder im Haupt-Cache (21) oder im Empfangs-Cache (22) gespeichert zu werden.
9. Prozessor nach Anspruch 1, weiter gekennzeichnet durch eine Anfragesteuerung (16) zum Empfangen von Lese/Schreibanfragen vom Befehlsprozessor (10) und der Empfangseinheit (12) und zum Übertragen der Lese/Schreiban frage zur Haupt-Cache-Steuerung (13) und zur Empfangs- Cache-Steuerung (14) zum Durchführen paralleler Trefferüberprüfungen im Haupt- und im Empfangs-Cache (21, 22), um festzustellen, ob angefragte Daten im Haupt-Cache (21) oder im Empfangs-Cache (22) vorliegen.
10. Prozessor nach Anspruch 1, weiter gekennzeichnet durch einen ersten Daten-Bus (DTB1), der mit dem Befehlsprozessor (10), der Sendeeinheit (11), der Empfangseinheit (12), der Haupt-Cache-Steuerung (13) und der Empfangs- Cache-Steuerung (14) verbunden ist, um zwischen ihnen Datenübertragung zu ermöglichen, und einen zweiten Daten- Bus (DTB2), der mit der Haupt-Cache-Steuerung (13), der Empfangs-Cache-Steuerung (14) und der Zugriffssteuerung (15) verbunden ist, um Datenübertragung zwischen ihnen zu ermöglichen.
11. Prozessor nach Anspruch 4, dadurch gekennzeichnet, daß der Kommunikations-Bus (B1) mit der Haupt-Cache-Steuerung (13), der Empfangs-Cache-Steuerung (14) und der Zugriffssteuerung (23) für die Datenübertragung zwischen ihnen verbunden ist.
12. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Haupt-Cache-Steuerung (13) und die Empfangs-Cache- Steuerung (14) jeweils eine Trefferüberprüfungsschaltung (100, 200) haben, um zu bestimmen, ob im Haupt-Cache (21) bzw. im Empfangs-Cache (22) ein Treffer oder ein Fehler vorliegt, wobei dann, wenn der Befehlsprozessor (10) zur Durchführung eines Datenverarbeitungsvorgangs Daten holt, die Steuerungen (13, 14) des Haupt-Caches und des Empfangs-Caches parallel Trefferüberprüfungen bezüglich dieser Daten im Haupt-Cache (21) und im Empfangs-Cache (22) mit den Trefferüberprüfungsschaltungen (100, 200) ausführen, wobei dann, wenn ein Treffer im Haupt-Cache auftritt, die Haupt-Cache-Steuerung (13) und die Empfangs- Cache-Steuerung (14) eine Übertragung zwischen Caches ausführen.
13. Prozessor nach Anspruch 12, dadurch gekennzeichnet, daß dann, wenn die Trefferüberprüfungsschaltungen (100, 200) feststellen, daß im Haupt-Cache (21) und im Empfangs- Cache (22) ein Fehler vorliegt, die Zugriffssteuerung (15) die Daten vom lokalen Speicher (23) in die Haupt- Cache-Steuerung (13) holt und die Haupt-Cache-Steuerung (13) den Block im Haupt-Cache (21) als Dirty-Block registriert.
14. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß das Prozessorelement eines von mehreren Prozessoren ist, die mit dem Netzwerk (2) verbunden sind, um ein Parallelverarbeitungssystem als Multiprozessorsystem zu bilden.
DE69327213T 1992-09-18 1993-09-20 Prozessor und Cache-Speicher zum Empfang von Daten anderer Prozessoren Expired - Fee Related DE69327213T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24919392A JP3409866B2 (ja) 1992-09-18 1992-09-18 並列計算機

Publications (2)

Publication Number Publication Date
DE69327213D1 DE69327213D1 (de) 2000-01-13
DE69327213T2 true DE69327213T2 (de) 2000-05-31

Family

ID=17189290

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69327213T Expired - Fee Related DE69327213T2 (de) 1992-09-18 1993-09-20 Prozessor und Cache-Speicher zum Empfang von Daten anderer Prozessoren

Country Status (4)

Country Link
US (1) US6065111A (de)
EP (1) EP0588369B1 (de)
JP (1) JP3409866B2 (de)
DE (1) DE69327213T2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802560A (en) * 1995-08-30 1998-09-01 Ramton International Corporation Multibus cached memory system
US20060064482A1 (en) * 2004-09-21 2006-03-23 Nybo Chad A System and method for caching data and filtering data requests in a client application
FR2921507B1 (fr) * 2007-09-26 2011-04-15 Arteris Dispositif de memoire electronique
US10057366B2 (en) * 2015-12-31 2018-08-21 Hughes Network Systems, Llc Accurate caching in adaptive video streaming based on collision resistant hash applied to segment contents and ephemeral request and URL data
JP7106825B2 (ja) * 2017-09-04 2022-07-27 富士フイルムビジネスイノベーション株式会社 画像処理装置、半導体装置及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942518A (en) * 1984-06-20 1990-07-17 Convex Computer Corporation Cache store bypass for computer
US4713755A (en) * 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
FR2609195A1 (fr) * 1986-12-31 1988-07-01 Thomson Csf Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede
EP0375864A3 (de) * 1988-12-29 1991-03-20 International Business Machines Corporation Cache-Speicherumgehung
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
JP2695017B2 (ja) * 1989-11-08 1997-12-24 富士通株式会社 データ転送方式
JPH03168860A (ja) * 1989-11-29 1991-07-22 Matsushita Electric Ind Co Ltd 並列プロセッサのバッファ記憶制御装置
US5247648A (en) * 1990-04-12 1993-09-21 Sun Microsystems, Inc. Maintaining data coherency between a central cache, an I/O cache and a memory
US5251310A (en) * 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories

Also Published As

Publication number Publication date
JPH06103244A (ja) 1994-04-15
EP0588369B1 (de) 1999-12-08
DE69327213D1 (de) 2000-01-13
US6065111A (en) 2000-05-16
JP3409866B2 (ja) 2003-05-26
EP0588369A1 (de) 1994-03-23

Similar Documents

Publication Publication Date Title
DE69323790T2 (de) Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
DE69616402T2 (de) Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem
DE3486161T2 (de) Datenverarbeitungssystem mit Datenkohärenz.
DE69701078T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE69721640T2 (de) Multiprozessor-Rechnersystem und Verfahren zur Steuerung des Verkehrsflusses
DE68926036T2 (de) Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher
DE3750107T2 (de) Cachespeicherkohärenzsteuerung mit einem Speicher, der ein laufendes Lesen anzeigt.
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE3782335T2 (de) Speichersteuersystem.
DE69130203T2 (de) Folgerichtiger paketvermittelter Speicherbus für Multiprozessoren mit gemeinsam genutztem Speicher
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE68922326T2 (de) Speicherwarteschlange für eine festgekoppelte Mehrprozessorenkonfiguration mit einem zweistufigen Cache-Pufferspeicher.
DE68926059T2 (de) Organisation einer integrierten Cache-Einheit zur flexiblen Verwendung beim Entwurf von Cache-Systemen
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE69628493T2 (de) Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE60211076T2 (de) Datenübertragung zwischen virtuellen Adressen
DE60219436T2 (de) System mit adressbasierter Intraknotenkohärenz und datenbasierter Interknotenkohärenz
DE69320847T2 (de) Verfahren und Anordnung zur Ausführung von Prozessen in einem Multiprozessor-System
DE102013204414B4 (de) Daten-Cachespeicherblock-Freigabeanforderungen in einer Cachespeicherhierarchie mit mehreren Ebenen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee