DE69327213T2 - Prozessor und Cache-Speicher zum Empfang von Daten anderer Prozessoren - Google Patents
Prozessor und Cache-Speicher zum Empfang von Daten anderer ProzessorenInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 161
- 238000004891 communication Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000000593 degrading effect Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 2
- 101100132483 Arabidopsis thaliana NAC073 gene Proteins 0.000 description 1
- 101100417903 Arabidopsis thaliana RRC1 gene Proteins 0.000 description 1
- 102100024630 Asc-type amino acid transporter 1 Human genes 0.000 description 1
- 101150030235 CTC1 gene Proteins 0.000 description 1
- 101100223811 Caenorhabditis elegans dsc-1 gene Proteins 0.000 description 1
- 102100021202 Desmocollin-1 Human genes 0.000 description 1
- 101000968043 Homo sapiens Desmocollin-1 Proteins 0.000 description 1
- 101000880960 Homo sapiens Desmocollin-3 Proteins 0.000 description 1
- 101000668432 Homo sapiens Protein RCC2 Proteins 0.000 description 1
- 101000710137 Homo sapiens Recoverin Proteins 0.000 description 1
- 101000668416 Homo sapiens Regulator of chromosome condensation Proteins 0.000 description 1
- 101000617805 Homo sapiens Staphylococcal nuclease domain-containing protein 1 Proteins 0.000 description 1
- 102100033256 Mitochondrial amidoxime reducing component 2 Human genes 0.000 description 1
- 101150010475 Mtarc2 gene Proteins 0.000 description 1
- 102100039972 Protein RCC2 Human genes 0.000 description 1
- 102100034572 Recoverin Human genes 0.000 description 1
- 102100039977 Regulator of chromosome condensation Human genes 0.000 description 1
- 108091006242 SLC7A10 Proteins 0.000 description 1
- 101100333566 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ENV10 gene Proteins 0.000 description 1
- 102100021996 Staphylococcal nuclease domain-containing protein 1 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- (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.
- 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.
- 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".
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1992
- 1992-09-18 JP JP24919392A patent/JP3409866B2/ja not_active Expired - Fee Related
-
1993
- 1993-09-15 US US08/120,911 patent/US6065111A/en not_active Expired - Lifetime
- 1993-09-20 EP EP93115106A patent/EP0588369B1/de not_active Expired - Lifetime
- 1993-09-20 DE DE69327213T patent/DE69327213T2/de not_active Expired - Fee Related
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 |