DE69705072T2 - Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem - Google Patents

Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem

Info

Publication number
DE69705072T2
DE69705072T2 DE69705072T DE69705072T DE69705072T2 DE 69705072 T2 DE69705072 T2 DE 69705072T2 DE 69705072 T DE69705072 T DE 69705072T DE 69705072 T DE69705072 T DE 69705072T DE 69705072 T2 DE69705072 T2 DE 69705072T2
Authority
DE
Germany
Prior art keywords
level cache
data word
signal
system bus
tag
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
DE69705072T
Other languages
English (en)
Other versions
DE69705072D1 (de
Inventor
Edgar Castle
Douglas Donley
Paul Flora
Manoj Manoj
Joseph Sassone
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.)
Unisys Corp
Original Assignee
Unisys Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/591,844 external-priority patent/US5813034A/en
Application filed by Unisys Corp filed Critical Unisys Corp
Publication of DE69705072D1 publication Critical patent/DE69705072D1/de
Application granted granted Critical
Publication of DE69705072T2 publication Critical patent/DE69705072T2/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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

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

Description

  • Verfahren zur Ausführung von Lese- und Schreibbefehlen in einem mehrstufigen verteilten Datenverarbeitungssystem
  • HINTERGRUND DER ERFINDUNG
  • Diese Erfindung betrifft den Aufbau und Betrieb der Cache- Speicher in einem verteilten Datenverarbeitungssystem.
  • Im Stand der Technik besteht ein typisches verteiltes Datenverarbeitungssystem aus einem einzigen Bus, einem Hauptspeichermodul, das mit dem Bus verbunden ist, und mehreren Digitalrechnern, die mittels jeweiliger Cache-Speicher mit dem Bus verbunden sind. Ein solches System ist beispielsweise das Pentium Pro System, das kürzlich von Intel angekündigt wurde, in dem von einem bis zu vier Digitalrechnern mittels jeweiliger Cache-Speicher mit einem Host-Bus verbunden werden. Siehe Seite 1, Electronic Engineering Times, 30. Okt., 1995.
  • Jeder Cache-Speicher im oberen verteilten Datenverarbeitungssystem arbeitet schneller als der Hauptspeicher; und solchermaßen ist die Auswirkung der Cache-Speicher die, dass sie eine Erhöhung der Leistung bereitstellen. Jedoch verfügt jeder Cache-Speicher über eine geringere Speicherkapazität als der Hauptspeicher; und solchermaßen speichert jeder Cache-Speicher zu irgendeinem Zeitpunkt nur eine Teilmenge aller Datenwörter, die im Hauptspeicher gespeichert werden.
  • Um zu verfolgen, welche Datenwörter sich in einem speziellen Cache-Speicher befinden, wird jedes Datenwort im Cache-Speicher mit einer begleitenden Vergleichsadresse und mit Markierungsbits gespeichert. Diese Vergleichsadresse bezeichnet die Adresse des entsprechenden Datenwortes im Hauptspeicher; und die Markierungsbits bezeichnen den Zustand des gespeicherten Datenwortes. Im obigen Pentium Pro System gibt es vier Markierungsbits, E, S, M und I.
  • Das Markierungsbit E ist wahr, wenn das entsprechende Datenwort nur in einem einzigen Cache-Speicher gespeichert wird. Das Markierungsbit S ist wahr, wenn das entsprechende Datenwort in mehreren als dem einen Cache-Speicher gespeichert wird. Das Markierungsbit M ist wahr, wenn ein entsprechendes Datenwort vom jeweiligen Rechner, mit dem der Cache-Speicher verbunden ist, modifiziert wurde. Und Markierungsbit I ist wahr, wenn das Datenwort nicht verwendet werden kann.
  • Jetzt ist eine dem obigen Pentium Pro Datenverarbeitungssystem innewohnende Einschränkung die, dass nur eine begrenzte Anzahl von Digitalrechnern mit ihren jeweiligen Cache-Speichern mit dem Host-Bus verbunden werden können. Diese Einschränkung erfolgt, da die physikalische Länge vom Bus begrenzt werden muss, um bei einer vorbestimmten Geschwindigkeit Signale auf dem Bus zu überführen. Wenn die Buslänge erhöht wird, um mehrere Verbindungen mittels zusätzlicher Digitalrechner und ihrer Cache-Speicher zu unterbringen, dann muss die Geschwindigkeit, mit der der Bus arbeitet, gesenkt werden.
  • WO-A-90/05953 beschreibt ein Multiprozessornetz mit einem überwachenden Kohärenzprotokoll, worin jeder Prozessor seinen eigenen privaten Cache und seine Schnittstelle aufweist und worin die Prozessoren mithilfe eines gemeinsamen Systembusses miteinander verbunden werden. Jeder Prozessor hat sein eigenes Cache-Verzeichnis und Bildverzeichnis, die einander nichtelementar (d. h. zu unterschiedlichen Zeitspannen) duplizieren. Das überwachende Kohärenzprotokoll verwendet die Dualität der Verzeichnisse und den nicht-elementaren Charakter der Aktualisierungen zur Optimierung der Prozessor-Cache-Verfügbarkeit und zum Verkürzen der Zugriffszeiten darauf. Die WO-A-90/05953 enthält jedoch keine Lehre bezüglich eines Multi-Level-Cache- Systems. Darüber hinaus unterscheiden sich die Markierungszustandsbits von den hier oben beschriebenen.
  • In Übereinstimmung mit der vorliegenden Erfindung wird zum ein verteiltes Multi-Level-Datenverarbeitungssystem offenbart, das die folgende Architektur aufweist: einen einzigen Systembus mit einer Hauptspeicherkopplung daran; mehrere High-Level-Cache- Speicher, von denen jeder einen ersten am Systembus gekoppelten Anschluss und einen zweiten an einem jeweiligen Prozessorbus gekoppelten Anschluss aufweist; und wobei jeder Prozessorbus mittels jeweiliger Low-Level-Speicher mit jeweiligen Digitalrechnern, verbunden wird. Mit diesem verteilten Multi- Level-Datenverarbeitungssystem kann jeder Prozessorbus in der Länge eingeschränkt werden und solchermaßen bei einer hohen Geschwindigkeit arbeiten; und zum selben Zeitpunkt kann die maximale Anzahl der Digitalrechner an jedem Prozessorbus der maximalen Anzahl der Rechner im gesamten Pentium Pro System gleich sein.
  • Jedoch ist ein Problem, der man im obigen verteilten Multi- Level Datenverarbeitungssystem begegnen muss, dass jeder High- Level-Cache-Speicher vorzugsweise in der Lage sein sollte, schnell und gleichzeitig auf zwei unterschiedliche LESE-Befehle zu reagieren, von denen der eine an einem Prozessorbus und der andere am Systembus erfolgt. Wenn der LESE-Befehl am Prozessorbus für ein Datenwort ist, das im High-Level-Cache- Speicher gespeichert ist, sollte der High-Level-Cache-Speicher vorzugsweise dieses Datenwort schnell am Prozessorbus vorlegen, um die Systemleistung zu verbessern. Wenn zum selben Zeitpunkt der LESE-Befehl am Systembus für ein Datenwort ist, das sowohl im Hauptspeicher als auch im High-Level-Cache-Speicher gespeichert ist, sollte der High-Level-Cache-Speicher dann auch mit einem Steuersignal, das dem Sender des LESE-Befehls anzeigt, dass das Datenwort geteilt ist - was zum exklusiv entgegengesetzt ist - schnell am Systembus reagieren. Wenn auf eine ähnliche Weise der LESE-Befehl am Systembus für ein Datenwort ist, das sich im High-Level-Cache-Speicher befindet und dort vom Digitalrechner am Prozessorbus modifiziert wurde, sollte dann der High-Level-Cache-Speicher vorzugsweise mit einem Steuersignal, das dem Sender des LESE-Befehls anzeigt, dass das angeforderte Datenwort verschoben wird, schnell am Systembus reagieren. Daraufhin kann der High-Level-Cache-Speicher das modifizierte Datenwort abholen und es auf dem Systembus senden.
  • Ein Problem kann auch im obigen verteilten Multi-Level Datenverarbeitungssystem entstehen, wenn zwei Digitalrechner, die sich an unterschiedlichen Prozessorbussen befinden, versuchen, SCHREIB-Befehle durchzuführen, die dasselbe Datenwort abändern. Wenn ein solcher Fall auftritt, kann den zwei Digitalrechnern nicht erlaubt werden, dasselbe Datenwort in ihrem jeweiligen Low-Level-Cache-Speicher unterschiedlich zu verändern; anderenfalls gäbe es zwei Versionen desselben Datenworts. Da sich jedoch die zwei Digitalrechner, die versuchen, das Datenwort zu modifizieren, an unterschiedlichen Prozessorbussen befinden, sind diese Rechner verwendbar, um am jeweils anderen SCHREIB-Befehl zu überwachen, um das Problem zu vermeiden.
  • Im verteilten Multi-Level-Datenverarbeitungssystem hat es jeder High-Level-Cache-Speicher auch nötig, irgendwie es zu verfolgen, welche Datenwörter in den Low-Level-Cache-Speichern modifiziert werden, mit denen er verbunden ist. Anderenfalls müsste dieser High-Level-Cache-Speicher jedesmal, wenn ein LESE- Befehl für ein Datenwort, das sowohl im Hauptspeicher als auch im speziellen High-Level-Cache-Speicher gespeichert wird, am Systembus auftritt, annehmen, dass das Datenwort von einem Digitalrechner an seinem jeweiligen Prozessorbus modifiziert wurde. Dies erfordert wiederum vom High-Level-Cache-Speicher, auf den LESE-Befehl zu reagieren, indem das vormutlich modifizierte Datenwort zurückgeholt wird und an den Systembus überführt wird. Jedoch wird eine solche Tätigkeit durch den High-Level-Cache-Speicher, verglichen mit dem einfachen Lesen des Datenwortes vom Hauptspeicher, wenn es eigentlich noch nicht modifiziert wurde, sehr zeitaufwendig sein.
  • Entsprechend liegt eine Hauptaufgabe der Erfindung darin, ein verteiltes Multi-Level-Datenverarbeitungssystem zur Verfügung zu stellen, in dem die obigen Probleme bewältigt werden.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Die obige Aufgabe und weitere Aufgaben, die hiernach offensichtlich werden, werden durch ein Verfahren zum Durchführen von Lese- und Schreibbefehlen erreicht, wie es in den anliegenden Ansprüchen definiert wird.
  • In Übereinstimmung mit der vorliegenden Erfindung setzt sich ein Zwei-Anschluss-High-Level-Cache-Speicher zur Verwendung in einem verteilten Multi-Level-Datenverarbeitungssystem aus den folgenden Elemente zusammen: einem ersten Anschluss, der die LESE-Befehle von einem Systembus empfängt, und einem zweiten Anschluss, der die LESE-Befehle von einem Prozessorbus empfängt; einem ersten Markierungsspeicher, der mit dem ersten Anschluss verbunden ist, und einem zweiten Markierungsspeicher, der mit dem zweiten Anschluss verbunden ist; wobei der erste Markierungsspeicher über eine Gruppe von darin gespeicherten Vergleichsadressen verfügt, und der zweite Markierungsspeicher ebenfalls über dieselbe Gruppe von darin gespeicherten Vergleichsadressen verfügt; wobei der erste Markierungsspeicher ein erstes Übereinstimmungssignal erzeugt, wenn vom System ein LESE-Befehl mit einer Adresse empfangen wird, die mit einer Vergleichsadresse im ersten Markierungsspeicher gleich ist; und wobei der zweite Markierungsspeicher unabhängig vom ersten Übereinstimmungssignal ein zweites Übereinstimmungssignal erzeugt, wenn vom Prozessorbus ein LESE-Befehl mit einer Adresse empfangen wird, die mit einer Vergleichsadresse im zweiten Markierungsspeicher gleich ist.
  • Mit diesen zwei unabhängig erzeugten Übereinstimmungssignalen ist der High-Level-Cache-Speicher in der Lage, sofort auf zwei unterschiedliche LESE-Befehle zu reagieren, die am Prozessorbus und am Systembus auftreten. Wenn der LESE-Befehl am Prozessorbus für ein Datenwort ist, das im High-Level-Cache- Speicher gespeichert ist, kann dann der High-Level-Cache- Speicher das erste Übereinstimmungssignal verwenden, um dieses Datenwort aus einem Datenspeicher im Cache wiederzugewinnen und es auf dem Prozessorbus zu senden. Gleichzeitig kann der High- Level-Cache-Speicher daraufhin, wenn der LESE-Befehl am Systembus für ein nicht modifiziertes Datenwort ist, das sich sowohl im Hauptspeicher am Systembus als auch im High-Level- Cache-Speicher befindet, das zweite Übereinstimmungssignal verwenden, um am Systembus ein Steuersignal zu erzeugen, das anzeigt, dass das Datenwort geteilt ist. Wenn auf eine ähnliche Weise der LESE-Befehl am Systembus für ein modifiziertes Datenwort im nur dem High-Level-Cache-Speicher und nicht dem Hauptspeicher ist, kann der High-Level-Cache-Speicher dann das zweite Übereinstimmungssignal verwenden, um am Systembus ein Steuersignal zu erzeugen, das anzeigt, dass die Durchführung des LESE-Befehls verschoben werden muss.
  • Wenn vergleichsweise der High-Level-Cache-Speicher nur einen einzigen Markierungsspeicher hätte, dann würden die zwei unterschiedlichen LESE-Befehle, die am Prozessorbus und am Systembus auftreten, miteinander konkurrierend sein. Um diese Konkurrenz zu lösen, müsste der einzige Markierungsspeicher durch die LESE-Befehle am Prozessorbus und die LESE-Befehle am Systembus zeitgeteilt sein; jedoch würde dies die Systemleistung stark reduzieren.
  • In Übereinstimmung mit der vorliegenden Erfindung setzt sich ein verteiltes Datenverarbeitungssystem auch aus den folgenden Elementen: einem Systembus, der einen daran gekoppelten Hauptspeicher hat; mehreren High-Level-Cache- Speichern, von denen jeder über einen am Systembus gekoppelten ersten Anschluss und einen an einem jeweiligen Prozessorbus gekoppelten zweiten Anschluss verfügt; und wobei jeder Prozessorbus mittels jeweiliger Low-Level-Cache-Speicher mit den mehreren Digitalrechnern verbunden ist. In Übereinstimmung mit der vorliegenden Erfindung speichert jeder Low-Level-Cache- Speicher weiterhin Datenwörter mit jeweiligen Markierungsbits, die jedes Datenwort als geteilt, modifiziert oder ungültig, jedoch niemals als exklusiv bezeichen; und wobei jeder High- Level-Cache-Speicher Datenwörter mit jeweiligen Markierungsbits speichert, die jedes Datenwort als geteilt, modifiziert, ungültig oder exklusiv bezeichnen.
  • Mit dem obigen verteilten Datenverarbeitungssystem beginnt ein Digitalrechner mit der Durchführung eines SCHREIB-Befehls, indem sein jeweiliger Low-Level-Cache-Speicher adressiert wird, um zu versuchen, das Datenwort zu erhalten, das modifiziert werden soll. Wenn das adressierte Datenwort im Low-Level-Cache- Speicher vorliegt und das "geteilt" Markierungsbit wahr ist, wird dann eine SCHREIB-ANFORDERUNG an den High-Level-Cache- Speicher gesendet, der über einen Prozessorbus mit dem Rechner verbunden ist. Dieser High-Level-Cache-Speicher überprüft daraufhin seine eigenen Markierungsbits für das Datenwort, das geschrieben werden soll. Wenn das "geteilt" Markierungsbit im High-Level-Cache-Speicher wahr ist, sendet er daraufhin eine SCHREIB-ANFORDERUNG auf dem Systembus, um zu verhindern, dass irgendein anderer Rechner dasselbe Datenwort modifiziert. Daraufhin sendet der High-Level-Cache-Speicher ein SCHREIB- ERTEILUNGS-Signal zurück zum Low-Level-Cache-Speicher; und er ändert die Markierung für das Datenwort, das geschrieben werden soll, von geteilt auf modifiziert. Wenn anderenfalls das "exklusiv" Markierungsbit im High-Level-Cache-Speicher wahr ist, dann ist der High-Level-Cache-Speicher in der Lage, dieses SCHREIB-ERTEIiLUNGS-Signal zurück zum Low-Level-Cache-Speicher zu senden, ohne irgendwelche Signale auf dem Systembus zu senden; und er ändert die Markierungsbits für das Datenwort, das geschrieben werden soll, von exklusiv auf modifiziert. 30
  • Wenn vergleichsweise einem Datenwort für einen SCHREIB- Befehl erlaubt würde, in einem Low-Level-Cache-Speicher gespeichert zu werden, wobei das "exklusiv" Markierungsbit wahr ist, dann könnte dieses Datenwort von einem Digitalrechner modifiziert werden, ohne irgendein SCHREIB-ERTEILUNGS-Signal aus einem High-Level-Cache-Speicher empfangen zu müssen. Folglich könnten zwei Rechner auf getrennten Prozessorbussen dasselbe Datenwort auf eine unterschiedliche Weise in ihrem jeweiligen Low-Level-Cache-Speicher modifizieren.
  • Der High-Level-Cache-Speicher verfolgt ebefalls die Datenwörter, die modifiziert werden, indem diese Markierungsbits für das Datenwort von geteilt auf modifiziert oder von exklusiv auf modifiziert geändert werden. Wenn danach ein LESE-Befehl am Systembus auftritt, wird der High-Level-Cache-Speicher das angeforderte Datenwort am Systembus nicht gesendet, sofern es dieses Datenwort nicht mit einer modifizierten Markierung speichert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 veranschaulicht ein verteiltes Datenverarbeitungssystem, das eine bevorzugte Ausführungsform der vorliegenden Erfindung bildet.
  • Fig. 2A zeigt das Format, in dem Datenwörter in den High- Level-Cache-Speichern des Datenverarbeitungssystems aus der Fig. 1 gespeichert werden.
  • Fig. 2B zeigt das Format, in dem Datenwörter in den Low- Level-Cache-Speichern des Datenverarbeitungssystems aus der Fig. 1 gespeichert werden.
  • Fig. 3 zeigt eine Signalfolge, die im Datenverarbeitungssystem aus der Fig. 1 auftritt, wenn ein Digitalrechner P1 ein Datenwort liest, das im Hauptspeicher vorliegt, aber nicht im Low-Level-Cache-Speicher oder High-Level-Cache-Speicher für den P1-Rechner vorliegt.
  • Fig. 4 zeigt eine Signalfolge, die im Datenverarbeitungssystem aus der Fig. 1 auftritt, wenn ein Digitalrechner P20 dasselbe Datenwort liest, das zuvor vom Digitalrechner P1 in der Fig. 3 gelesen wurde.
  • Die Fig. 5A bis 5D zeigen eine Signalfolge, die im Datenverarbeitungssystem aus der Fig. 1 auftritt, wenn der Digitalrechner P1 einen SCHREIB-Befehl für ein geteiltes Datenwort durchführt, das zuvor in der Fig. 3 und 4 gelesen wurde.
  • Fig. 6 zeigt eine Signalfolge, die im Datenverarbeitungssystem aus der Fig. 1 auftritt, wenn der Digitalrechner P1 ein Datenwort liest, das im Hauptspeichermodul vorliegt, aber nicht im Low-Level-Cache-Speicher oder High-Level-Cache-Speicher für den Rechner P1 vorliegt.
  • Fig. 7 zeigt eine Signalfolge, die im Datenverarbeitungssystem aus der Fig. 1 auftritt, wenn der Digitalrechner P1 ein Datenwort liest, das im High-Level-Cache-Speicher vorliegt, aber nicht im Low-Level-Cache-Speicher für den Rechner P1 vorliegt.
  • Fig. 8A veranschaulicht eine Signalfolge, die im Datenverarbeitungssystem aus der Fig. 1 auftritt, wenn der Digitalrechner P1 mit der Durchführung eines SCHREIB-Befehls für ein exklusives Datenwort beginnt, das zuvor in der Fig. 6 und 7 gelesen wurde.
  • Fig. 8B zeigt eine Signalfolge, die den SCHREIB-Betrieb zu Ende führt, der in der Fig. 8A unter Bedingungen gestartet wird, in denen die Digitalrechner P1 und P20 nicht versuchen, gleichzeitig dasselbe Datenwort zu schreiben.
  • Die Fig. 8B' und 8C' zeigen eine Signalfolge, die den SCHREIB-Betrieb zu Ende führt, der in der Fig. 8A unter Bedingungen gestartet wird, in denen die Digitalrechner P1 und P20 versuchen, gleichzeitig dasselbe Datenwort zu schreiben.
  • Fig. 9 zeigt ein bevorzugter Schaltkreis für jeden der High-Level-Cache-Speicher, die sich im System aus der Fig. 1 befinden.
  • Fig. 10 zeigt, wie alle Module im High-Level-Cache-Speicher aus der Fig. 9 während der Signalfolgen 31 und 32 der Fig. 3 zusammenwirken.
  • Fig. 11 zeigt das Zusammenwirken aller Module im High- Level-Cache-Speicher aus der Fig. 9 während der Signalfolge 36 der Fig. 4.
  • Fig. 12 zeigt, wie alle Module im High-Level-Cache-Speicher aus der Fig. 9 während der Signalfolgen 40, 41, 42 und 45 der Fig. 5A-5D zusammenwirken.
  • Fig. 13 zeigt, wie alle Module im High-Level-Cache-Speicher aus der Fig. 9 während der Signalfolgen 43 und 44 in den Fig. 5B und 5C zusammenwirken.
  • Fig. 14 zeigt, wie alle Module im High-Level-Cache-Speicher aus der Fig. 9 während der Signalfolgen 51, 52, 55 und 56 der Fig. 6 zusammenwirken.
  • Fig. 15 zeigt, wie alle Module im High-Level-Cache-Speicher aus der Fig. 9 während der Signalfolgen 60, 61, 62, 70 und 71 in den Fig. 8A und 8B zusammenwirken.
  • Fig. 16 zeigt, wie alle Module im High-Level-Cache-Speicher aus der Fig. 9 während der Signalfolgen 60, 61, 62 und 64 in den Fig. 8A, 8B' und 8C' zusammenwirken.
  • Fig. 17 zeigt, wie alle Module im High-Level-Cache-Speicher aus der Fig. 9 während der Signalfolgen 83, 84, 85 und 86 der Fig. 8B' und 8c' zusammenwirken.
  • Fig. 18 zeigt eine bevorzugte innere Struktur für das Modul 101, das innerhalb des High-Level-Cache-Speichers aus der Fig. 9 eingeschlossen ist.
  • Fig. 19 zeigt eine alternative bevorzugte innere Struktur für das Modul 101, das im High-Level-Cache-Speicher aus der Fig. 9 eingeschlossen ist.
  • DETAILLIERTE BESCHREIBUNG
  • Nimmt man jetzt auf die Fig. 1 Bezug, wird ein verteiltes Datenverarbeitungssystem 10 gezeigt, das die vorliegende Erfindung einschließt. Dieses Datenverarbeitungssystem 10 schließt ein Hauptspeichermodul 11 und ein Eingabe/Ausgabemodul 12 ein, die mit einem einzigen Systembus 13 verbunden sind. In der Fig. 1 wird der Systembus als S-BUS bezeichnet, das Hauptspeichermodul mit mm bezeichnet und das Eingabe/Ausgabemodul mit I/O bezeichnet.
  • Im Datenverarbeitungssystem 10 sind auch mehrere High- Level-Cache-Speicher 14 eingeschlossen, von denen jeder einen am Systembus 11 gekoppelten ersten Anschluss und einen zweiten Anschluss aufweist, der mit dem jeweiligen Prozessorbus 15 verbunden ist. In der Fig. 1 wird jeder High-Level-Cache- Speicher mit HL bezeichnet und jeder Prozessorbus mit P-BUS bezeichnet.
  • Vorzugsweise variiert die Anzahl der High-Level-Cache- Speicher, die am Systembus ankoppeln, von eins bis zu fünf. In der Fig. 1 werden nur der erste, zweite und fünfte High-Level- Cache-Speicher dargestellt, und der dritte und der vierte High- Level-Cache-Speicher werden nicht gezeigt, aber als eine Reihe von Punkten angedeutet.
  • Weiterhin wird im Datenverarbeitungssystem 10 jeder Prozessorbus mittels jeweiliger Low-Level-Cache-Speicher 16 mit einem oder mehreren Digitalrechnern 17 verbunden. In der Fig. 1 werden die Low-Level-Cache-Speicher mit LL bezeichnet; und die Digitalrechner werden mit P1 bis P20 bezeichnet.
  • Vorzugsweise liegt die Anzahl der Digitalrechner an jedem Prozessorbus im Bereich von eins bis vier. Dies wird in der Fig. 1 dargestellt, worin die Rechner P1-P4 mittels jeweiliger Low- Level-Cache-Speicher mit dem ersten Prozessorbus verbunden werden und dort eine erste Datenverarbeitungsgruppe 18a bilden. Auf eine ähnliche Weise werden die Rechner P5-P8 mittels jeweiliger Low-Level-Cache-Speicher mit dem zweiten Verarbeitungsbus verbunden und bilden dort eine zweite Datenverarbeitungsgruppe 18b, usw.
  • In den High-Level-Cache-Speichern 14 wird eine Mehrzahl an Datenwörtern gespeichert, worin jedes Datenwort eine vorbestimmte Anzahl an Bits darstellt. Auch wird in jedem High- Level-Cache-Speicher jedes Datenwort 20 mit einem Format 21, wie in der Fig. 2A gezeigt, gespeichert. Dieses Format 21 schließt eine Vergleichsadresse CA und vier Markierungsbits E, S, M und I, ein. Nur ein Markierungsbit ist zu einem Zeitpunkt wahr.
  • Markierungsbit E ist das "exklusiv2 Markierungsbit und ist wahr, wenn das Datenwort nur in einem einzigen High-Level-Cache- Speicher 14 gespeichert wird. Markierungsbit S ist das "geteilt" Markierungsbit und ist wahr, wenn das Datenwort in mehreren als in einem der High-Level-Cache-Speicher 14 gespeichert wird. Markierungsbit M ist das "modifiziert" Markierungsbit und ist wahr, wenn das Datenwort von einem der Rechner modifiziert wurde, der durch den Prozessorbus mit dem High-Level-Cache- Speicher verbunden ist. Markierungsbit I ist ein "ungültig" Markierungsbit und ist wahr, wenn das Datenwort im High-Level- Cache-Speicher nicht verwendet werden kann.
  • Auf eine ähnliche Weise ist in den Low-Level-Cache- Speichern 16 eine Mehrzahl an Datenwörter gespeichert, worin jedes Datenwort eine vorbestimmte Anzahl an Bits darstellt. Jedoch wird in jedem Low-Level-Cache-Speicher jedes Datenwort 22 mit einem Format 23, wie in der Fig. 2B gezeigt, gespeichert. Dieses Format 23 schließt eine Vergleichsadresse und nur drei der oben beschriebenen Markierungsbits S, M und I ein. Markierungsbit E, das "exklusiv" Bit, ist immer falsch.
  • Um die Verfahren darzustellen, durch die die Datenwörter und Markierungsbits in den High-Level-Cache-Speichern und Low- Level-Cache-Speichern geladen und modifiziert werden, werden die Fig. 3 bis 8C' bereitgestellt. Jede dieser Figuren ist eine vereinfachte Darstellung des Systems der Fig. 1, in dem nur zwei der fünf Datenverarbeitungsgruppen gezeigt werden, aber in dem verschiedene Signalfolgen, die während der LESE- und SCHREIB- Betriebe auftreten, durch gestrichelte Linien dargestellt werden.
  • In Fig. 3 bezeichnen die gestrichelten Linien 31 und 32 zwei Signalfolgen, die auftreten, wenn der Digitalrechner P1 einen LESE-Befehl für ein Datenwort durchführt, das im Hauptspeichermodul vorliegt, aber nicht in seinem Low-Level- oder High-Level-Cache-Speicher für die Gruppe 18a vorliegt. In der Signalfolge 31 wird der LESE-Befehl anfänglich an den Low- Level-Cache-Speicher für den Digitalrechner P1 überführt. Wenn dann dieser Low-Level-Cache-Speicher bestimmt, dass er nicht über das verlangte Datenwort verfügt, wird der LESE-Befehl RD auf dem Prozessorbus an den High-Level-Cache-Speicher für die Gruppe 18a gesendet. Wenn später der High-Level-Cache-Speicher für die Gruppe 18a bestimmt, dass er nicht über das verlangte Datenwort verfügt, wird der LESE-Befehl auf dem Systembus zum Hauptspeichermodul mm gesendet.
  • Als Reaktion darauf sendet das Hauptspeichermodul das angeforderte Datenwort auf der Signalfolge 32 an den High-Level- Cache-Speicher für die Gruppe 18a. Dieses Datenwort wird dann im High-Level-Cache-Speicher gespeichert, wo es als exklusiv markiert wird; und dies wird in der Fig. 3 durch den Buchstaben E angezeigt. Danach wird das Datenwort in der Signalfolge 32 an den Low-Level-Cache-Speicher für den Digitalrechner PI gesendet. Jedoch wird das Datenwort in diesem Low-Level-Cache-Speicher als geteilt markiert; und dies wird in der Fig. 3 durch den Buchstaben S angezeigt.
  • Als nächstes wird in der Fig. 4 ein Verfahren dargestellt, worin der Digitalrechner P20 dasselbe Datenwort liest, das zuvor vom Digitalrechner P1 in der Fig. 3 gelesen wurde. Um dieses Verfahren durchzuführen, treten drei Signalfolgen auf, die durch die gestrichelten Linien 35, 36 und 37 angezeigt werden.
  • In der Signalfolge 35 wird ein LESE-Befehl RD aus dem Digitalrechner P20 mittels seines Low-Level-Cache-Speichers und High-Level-Cache-Speichers für die Gruppe 18e an das Hauptspeichermodul gesendet. Zum Zeitpunkt, wenn dieser LESE- Befehl auf dem Systembus vorliegt, überwacht der High-Level- Cache-Speicher für die Gruppe 18a am Systembus und tastet ab, dass der LESE-Befehl für ein Datenwort ist, das er intern gespeichert hat. Dies wird in der Fig. 4 als Überwacher 36 angezeigt.
  • Als Reaktion auf den Überwachungsbetrieb 36 sendet der High-Level-Cache-Speicher für die Gruppe 18a ein GETEILT Steuersignal 37 auf dem Systembus. Dieses Steuersignal 37 zeigt dem High-Level-Cache-Speicher für die Gruppe 18e an, dass das angeforderte Datenwort geteilt ist. Zum selben Zeitpunkt ändert der High-Level-Cache-Speicher für die Gruppe 18a seine Markierungsbits für das verlangte Datenwort von exklusiv auf geteilt, und dies wird im High-Level-Cache-Speicher für die Gruppe 18a durch das Symbol E -> S angezeigt.
  • Anschließend wird das verlangte Datenwort vom Hauptspeichermodul zum High-Level-Cache-Speicher für die Gruppe 18e gesendet. Dieses Durchgeben des Datenwortes erfolgt in der Signalfolge 38. Nachdem dieses Datenwort im High-Level-Cache- Speicher für die Gruppe 18c gespeichert wird, wird das Datenwort in der Signalfolge 38 an den Low-Level-Cache-Speicher für den Digitalrechner P20 gesendet. Sowohl im High-Level-Cache-Speicher für die Gruppe 18e als auch im Low-Level-Cache-Speicher für den Rechner P20 wird das Datenwort als geteilt gespeichert; und dies wird in diesen Speichern durch den Buchstaben S angezeigt.
  • Als nächstes wird in den Fig. 5A bis 5D ein Verfahren dargestellt, wodurch der Digitalrechner P1 einen SCHREIB-Befehl für das geteilte Datenwort durchführt das zuvor in den Fig. 3 und 4 gelesen wurde. Um diesen Prozess zu starten, treten zwei Signale auf, die durch die gestrichelten Linien 40 und 41 in Fig. 5A angezeigt werden. Das Signal 40 ist ein SCHREIB- ANFORDERUNGS-Signal WR, das vom Low-Level-Cache-Speicher für den Digitalrechner P1 an den High-Level-Cache-Speicher für die Gruppe 18a gesendet wird. Danach wird als Reaktion darauf ein VERSCHIEBE-Signal 41 vom High-Level-Cache-Speicher für die Gruppe 18a an den Low-Level-Cache-Speicher für den Digitalrechner P1 gesendet.
  • Danach wird ein SCHREIB-ANFORDERUNGS-Signal WR 42 vom High- Level-Cache-Speicher für die Gruppe 18a auf dem Systembus gesendet, und dies wird in der Fig. 5B gezeigt. Dieses SCHREIB- ANFORDERUNGS-Signal wird auf den Systembus gesetzt, so dass es vom High-Level-Cache-Speicher für die Gruppe 18e abgetastet werden kann; und diese Abtastung wird in der Fig. 5B als ein Überwachungsbetrieb 43 angezeigt.
  • Als Reaktion auf den Überwachungsbetrieb 43 wird die Markierung für das Datenwort, das während des Verfahrens der Fig. 4 gelesen wird, im High-Level-Cache-Speicher für die Gruppe 18e von geteilt auf ungültig geändert. Daraufhin sendet der High-Level-Cache-Speicher für die Gruppe 18e einen UNGÜLTIG- MACHEN-Befehl an den Low-Level-Cache-Speicher für den Digitalrechner P20, was als Signal 44 in der Fig. 5C angezeigt wird. Dieser Befehl bewirkt, dass die Markierung für das Datenwort, das während des Prozesses aus der Fig. 4 gelesen wurde, im Low-Level-Cache-Speicher für den Rechner P20 von geteilt auf ungültig geändert wird. Jede Änderung in den Markierungsbits in der Fig. 5C wird durch das Symbol S -> I angezeigt.
  • Gleichzeitig mit den Betrieben aus der Fig. 5C erfolgen zusätzliche Betriebe, wie in der Fig. 5D gezeigt. Anfänglich ändert der High-Level-Cache-Speicher für die Gruppe 18a seine Markierungsbits für das vom SCHREIB-Befehl verwendete Datenwort von geteilt auf modifiziert. Danach wird ein SCHREIB-ERTEILUNGS- Signal WG vom High-Level-Cache-Speicher für die Gruppe 18a an den Low-Level-Cache-Speicher für den Rechner Pl gesendet, was als Signal 45 angezeigt wird. Als Reaktion darauf ändert dieser Low-Level-Cache-Speicher seine Markierungsbits für das vom SCHREIB-Befehl verwendete Datenwort von geteilt auf modifiziert. Jede Änderung in den Markierungsbits wird in der Fig. 5D durch das Symbol S -> M angezeigt.
  • Auf der Grundlage der Signalfolgen, die oben in Verbindung mit den Fig. 5A-5D beschrieben wurden, ist es klar, dass die Durchführung eines SCHREIB-Befehls, der an geteilten Daten arbeitet, einen komplexen Betrieb darstellt. Dies ist so infolge aller Signale, die während der Sequenzen 40-45 gesendet werden müssen. Wenn zum Vergleich ein SCHREIB-Befehl durchgeführt wird, der an exklusiven Daten arbeitet, wird die Komplexität stark reduziert; und dies wird jetzt in Verbindung mit den Fig. 6- 8C' erläutert.
  • Um mit der Fig. 6 anzufangen, deuten die gestrichelten Linien 51 und 52 zwei Signalfolgen an, die verwendet werden, wenn der Digitalrechner P1 anfangs ein Datenwort aus dem Hauptspeichermodul liest. Diese Signalfolgen 51 und 52 entsprechen jeweils den Signalfolgen 31 und 32, die zuvor in Verbindung mit der Fig. 3 beschrieben wurden. Infolge des LESE- Betriebs in der Fig. 6 wird ein Datenwort aus dem Hauptspeichermodul an den High-Level-Cache-Speicher für die Gruppe 18a gesendet und darin als exklusiv markiert. Dasselbe Datenwort wird dann an den Low-Level-Cache-Speicher für den Digitalrechner P1 überführt und darin als geteilt markiert.
  • Später kann das Datenwort, das während des Verfahrens der Fig. 6 gelesen wird, anschließend aus dem Low-Level-Cache- Speicher für den Digitalrechner P1 gelöscht, aber im High-Level- Cache-Speicher für die Gruppe 18a gehalten werden. Dies wird geschehen, falls der Low-Level-Cache-Speicher eine kleinere Speicherkapazität als der High-Level-Cache-Speicher aufweist, und es wird ein weiterer LESE-Befehl ausgeführt, der bewirkt, dass die Daten im Low-Level-Cache-Speicher ersetzt werden.
  • Nachdem der obige Austausch im Low-Level-Cache-Speicher für den Digitalrechner P1 erfolgt, kann dieser Digitalrechner erneut versuchen, dieses gleiche Datenwort, das ersetzt wurde, zu lesen; und die Durchführung eines solchen LESE-Befehls wird in der Fig. 7 dargestellt. Anfänglich wird der LESE-Befehl vom Prozessor P1 an seinen Low-Level-Cache-Speicher gesendet. Wenn dann der Low-Level-Cache-Speicher bestimmt, dass er nicht über das angeforderte Datenwort verfügt, wird der LESE-Befehl als Signal 55 an den High-Level-Cache-Speicher für die Gruppe 18a gesendet. Dieser High-Level-Cache-Speicher bestimmt dann, dass er das angeforderte Datenwort als exklusive Daten gespeichert hat; und er führt das angeforderte Datenwort als Signal 56 zum Low-Level-Cache-Speicher für den Prozessor P1 zurück.
  • Man nehme jetzt an, dass der Prozessor P1 einen SCHREIB- Befehl durchführt, der das exklusive Datenwort verwendet, das im High-Level-Cache-Speicher für die Gruppe 18a gespeichert ist. Diese Durchführung des SCHREIB-Befehls kann auf zwei unterschiedliche Arten erfolgen; eine wird in den Fig. 8A und 8B und die andere in den Fig. 8A, 8B' und 8C' dargestellt.
  • In der Fig. 8A bewirkt die Durchführung des SCHREIB-Befehls durch den Digitalrechner P1, dass ein SCHREIB-ANFORDERUNGS- Signal 60 vom Low-Level-Cache-Speicher für den Digitalrechner P1 an den High-Level-Cache-Speicher für die Gruppe 18a gesendet wird. Wenn das SCHREIB-ANFORDERUNGS-Signal empfangen wird, bestimmt der High-Level-Cache-Speicher für die Gruppe 18a, dass er das zu schreibende Datenwort intern als exklusive Daten speichert. Als Reaktion auf diese Bestimmung sendet der High- Level-Cache-Speicher für die Gruppe 18a ein NEUVERSUCH-Signal 61 zurück zum Low-Level-Cache-Speicher für den Digitalrechner P1.
  • Während die oben beschriebenen Signale 60 und 61 auftreten, überwacht der High-Level-Cache-Speicher für die Gruppe 18a auch am Systembus, um zu sehen, ob durch irgendeinen anderen High- Level-Cache-Speicher ein SCHREIB-ANFORDERUNGS-Signal auf dem Systembus gesendet wird oder nicht. Der Überwachungsbetrieb wird in der Fig. 8a als Überwacher 62 gezeigt; und das SCHREIB- ANFORDERUNGS-Signal, das auf dem Systembus aus einem anderen High-Level-Cache-Speicher vorliegen kann oder nicht vorliegen kann, wird als WR 63 angezeigt.
  • Wenn kein SCHREIB-ANFORDERUNGS-Signal am Systembus erfasst wird, das dasselbe Datenwort verwendet, das der Digitalrechner P1 zu SCHREIBEN versucht, wird dann die Markierung für dieses Datenwort im High-Level-Cache-Speicher für die Gruppe 18a von exklusiv auf modifiziert verändert; was durch das Symbol E -> M in der Fig. 8B angezeigt wird. Danach fährt die Durchführung dieses SCHREIB-Befehls bis zur Beendigung durch die Signalfolge aus der Fig. 8B fort.
  • Wenn umgekehrt ein SCHREIB-ANFORDERUNGS-Signal am Systembus erfasst wird, das dasselbe Datenwort verwendet, das der Rechner P1 zu SCHREIBEN versucht, dann wird die Markierung für dieses Datenwort im High-Level-Cache-Speicher für die Gruppe 18a von exklusiv auf ungültig geändert; und dies wird durch das Symbol E -> I in der Fig. 8B' angegeben. Danach fährt die Durchführung des SCHREIB-Befehls bis zur Beendigung durch die Signalfolgen fort, die in den Fig. 8B' und 8C' gezeigt werden.
  • Als praktischer Umstand ist die Wahrscheinlichkeit äußerst gering, dass ein SCHREIB-ANFORDERUNGS-Signal am Systembus während des Überwachungsbetriebs 62 auftreten wird, das dasselbe Datenwort verwendet, das dieser Digitalrechner P1 zu schreiben versucht. Folglich wird die Durchführung des SCHREIB-Befehls vom Digitalrechner P1 beinahe immer so fortfahren wie in der Fig. 8B gezeigt.
  • In der Fig. 8B sendet der Low-Level-Cache-Speicher für den Digitalrechner P1 ein anderes SCHREIB-ANFORDERUNGS-Signal 70 zurück zum High-Level-Cache-Speicher für die Gruppe 18a. Dieses zweite SCHREIB-ANFORDERUNGS-Signal wird als Reaktion auf das NEUVERSUCH-Signal 61 gesendet, das in der Fig. 8A auftritt. Daraufhin reagiert der High-Level-Cache-Speicher für die Gruppe 18a auf das SCHREIB-ANFORDERUNGS-Signal 70 und die modifizierte Markierung für das Datenwort, das geschrieben werden soll, indem ein SCHREIB-ERTEILUNGS-Signal 71 zurück zum Low-Level-Cache- Speicher für den Digitalrechner P1 gesendet wird.
  • In der Fig. 8B' reagiert der High-Level-Cache-Speicher für die Gruppe 18a auf das SCHREIB-ANFORDERUNGS-Signal 63, das am Systembus auftrat, indem ein UNGÜLTIGMACHEN-Befehl 64 zurück zum Low-Level-Cache-Speicher für den Digitalrechner P1 gesendet wird. Auch tritt als Reaktion auf das SCHREIB-ANFORDERUNGS- Signal 63 auf dem Systembus eine weitere Signalfolge 65 auf, in der das vom Digitalrechner P20 zu schreibende Datenwort aus dem Hauptspeicher an den High-Level-Cache-Speicher für die Gruppe 18e überführt wird. Dort wird das empfangene Datenwort als modifiziert markiert. Dann wird dasselbe Datenwort zum Low- Level-Cache-Speicher für den Digitalrechner P20 überführt, wo es ebenfalls als modifiziert markiert wird.
  • Danach tritt die Signalfolge der Fig. 8C' auf, in der das zweite SCHREIB-ANFORDERUNGS-Signal 80 an den High-Level-Cache- Speicher für die Gruppe 18a gesendet wird. Als Reaktion auf dieses SCHREIB-ANFORDERUNGS-Signal und die ungültige Markierung für das zu schreibende Datenwort sendet der High-Level-Cache- Speicher für die Gruppe 18a ein VERSCHIEBE-Signal 81 zurück zum Low-Level-Cache-Speicher für den Digitalrechner P1. Dann sendet der High-Level-Cache-Speicher für die Gruppe 18a einen LESE- Befehl 82 auf dem Systembus für das Datenwort, das der Digitalrechner P1 zu schreiben versucht.
  • Während sich der LESE-Befehl 82 auf dem Systembus befindet, wird dieser Befehl im High-Level-Cache-Speicher für die Gruppe 18e erfasst; und diese Erfassung wird in den Fig. 8C' als ein Überwachungsbetrieb 83 angezeigt. Als nächstes bestimmt der High-Level-Cache-Speicher für die Gruppe 18e, dass der LESE- Befehl 82 für dasselbe Datenwort ist, das verhernd der Signalfolge 65 intern gespeichert wird. Als Reaktion auf diese Bestimmung sendet der High-Level-Cache-Speicher für die Gruppe 18e ein VERSCHIEBE-Signal 84 auf dem Systembus zum High-Level- Cache-Speicher für die Gruppe 18a. Dieses VERSCHIEBE-Signal 84 zeigt an, dass die Daten, die vom LESE-Signal 82 verlangt wurden, aus einer anderen Quelle als dem Hauptspeicher kommen und solchermaßen verschoben werden.
  • Danach holt der High-Level-Cache-Speicher für die Gruppe 18e intern das Datenwort für den LESE-Befehl 82 zurück und markiert intern dieses Datenwort als ungültig. Weiterhin sendet der High-Level-Cache-Speicher für die Gruppe 18e ein UNGÜLTIG- MACHEN-Befehl 85 an den Low-Level-Cache-Speicher für den Digitalrechner P20, der veranlasst, dass das wiedergewonnene Datenwort dort als ungültig markiert wird. Dann sendet der High- Level-Cache-Speicher für die Gruppe 18e das wiedergewonnene Datenwort auf dem Systembus an den High-Level-Cache-Speicher für die Gruppe 18a, und dies wird durch die Signalfolge 86 angezeigt. Wenn dieses Datenwort empfangen wird, reagiert der High-Level-Cache-Speicher für die Gruppe 18a, indem er das Datenwort und ein SCHREIB-ERTEILUNGS-Signal an den Low-Level- Cache-Speicher für den Digitalrechner P1 sendet.
  • Kehrt man jetzt zur Fig. 9 zurück, wird ein bevorzugter Schaltkreis für den High-Level-Cache-Speicher beschrieben, der alle Signalfolgen der Fig. 3 bis 8C' durchführt. Dieser Schaltkreis der Fig. 9 setzt sich aus zwölf Modulen 90-101 zusammen, die wie gezeigt miteinander verbunden werden. Jedes dieser Module 90-101 wird unten in TABELLE 1 beschrieben.
  • TABELLE 1
  • Modul Beschreibung
  • 90 ... Modul 90 ist ein Eingabepuffer zum Empfangen der Signale aus dem Prozessorbus. Diese empfangenen Signale schließen die LESE-Befehle der Fig. 3, 6 und 7 ein; und die SCHREIB-ANFORDERUNGEN der Fig. 5A, 8A, 8B und 8C' ein.
  • 91 ... Modul 91 ist ein Markierungsspeicher, der eine Mehrzahl an Vergleichsadressen und die vier Markierungsbits (E, S, M und I) für jede gespeicherte Adresse speichert. Der Markierungsspeicher 91 erzeugt intern ein ÜBEREINSTIMMUNGS- Signal, wenn ein LESE-Befehl oder eine SCHREIB-ANFORDERUNG aus dem Prozessorbus-Eingabepuffer 90 mit einer Adresse empfangen wird, die mit einer Vergleichsadresse gleich ist, die im Markierungsspeicher 91 gespeichert wird. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal und die Markierungsbits für die übereinstimmende Vergleichsadresse werden durch den Markierungsspeicher 91 an seinen Ausgängen verschiedene Signale erzeugt.
  • 92 ... Modul 92 ist ein Datenspeicher, der eine Vielzahl an Datenwörtern speichert. Ein solches Datenwort wird in diesem Datenspeicher für jede Vergleichsadresse gespeichert, die im Markierungsspeicher 91 gespeichert ist. Diese Datenwörter werden von den Datenspeichereingängen adressiert und von ihren Ausgängen gelesen.
  • 93 ... Modul 93 ist ein Ausgabepuffer, der Datenwörter und UNGÜLTIGMACHEN-Befehle auf dem Prozessorbus sendet. Die Datenwörter werden in den Fig. 3 und 6 gesendet, und die UNGÜLTIGMACHEN-Befehle werden in den Fig. 8B' und 8C' gesendet.
  • 94 ... Modul 94 ist ein Schaltkreis, der unter der Leitung des Markierungsspeichers 91 Steuersignale auf dem Prozessorbus sendet. Diese Steuersignale umfassen das VERSCHIEBE-Signal in den Fig. 5A und 8C', das SCHREIB-ERTEILUNGS-Signal WG in den Fig. 5D und 8B, und das NEUVERSUCH-Signal in Fig. 8A.
  • 95 ... Modul 95 ist ein Eingabepuffer, der aus dem Systembus das Datenwort empfängt, das auf dem Systembus in den Fig. 3, 4, 6, 7 und 8B' und 8C' auftritt. Modul 95 empfängt auch die Systembussignale, die während der Überwachungsbetriebe in den Fig. 4, 5B, 8A und 8C' auftreten.
  • 96 ... Modul 96 ist ein Markierungsspeicher, der dieselben Vergleichsadressen und Markierungsbits (E, S, M und I) für jede gespeicherte Adresse speichert wie der oben beschriebene Markierungsspeicher 91. Der Markierungsspeicher 96 arbeitet parallel zum und unabhängig vom Markierungsspeicher 91. Der Markierungsspeicher 96 erzeugt während des Überwachungsbetriebs in den Fig. 4, 5B, 8A und 8C' intern ein ÜBEREINSTIMMUNGS-Signal, wenn im Eingabepuffer 95 eine Adresse aus dem Systembus erfasst wird, die mit einer Vergleichsadresse gleich ist, die im Markierungsspeicher 96 gespeichert wird. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal und die Markierungsbits für die übereinstimmende Vergleichsadresse erzeugt der Markierungsspeicher 96 verschiedene Steuersignale an seinem Ausgang.
  • 97 ... Modul 97 ist ein Schaltkreis, der unter Anweisung des Markierungsspeichers 96 Steuersignale auf dem Systembus sendet. Diese Steuersignale schließen das GETEILT Signal in der Fig. 4 und das VERSCHIEBE- Signal in Fig. 8C' ein.
  • 98 ... Modul 98 ist eine FIFO-Warteschlange, die Eingaben aus dem Systembus-Eingabepuffer 95 und dem Markierungsspeicher 96 empfängt. Als Reaktion auf diese Eingaben kann das Modul 98 den Zustand der Markierungsbits im Markierungsspeicher 91 ändern, ein Datenwort in den Datenspeicher 92 schreiben, ein Datenwort aus dem Datenspeicher 92 lesen oder einen UNGÜLTIGMACHEN-Befehl an den Ausgabepuffer 93 senden.
  • 99 ... Modul 99 ist eine FIFO-Warteschlange, die Eingaben aus dem Eingabepuffer 90 und dem Markierungsspeicher 91 empfängt. Als Reaktion auf diese Eingaben kann das Modul 99 mehrere Betriebe am Systembus einleiten. Diese Betriebe umfassen das Senden eines LESE-Befehls RD auf dem Systembus in den Fig. 3, 4 und 6, das Senden einer SCHREIB-ANFORDERUNG WR auf dem Systembus in den Fig. 5B und 8A, und das Senden eines Datenwortes auf dem Systembus in Fig. 8C'.
  • 100 ... Modul 100 ist ein Ausgabepuffer, der, wie vom Modul 99 eingeleitet, Signale auf dem System sendet.
  • 101 ... Modul 101 ist eine Schreibsteuer-Logikschaltung, die die Signalfolgen zum Schreiben exklusiver Datenwörter implementiert, wie in den Fig. 8A, 8B und 8B' gezeigt. Diese Signalfolgen schließen das Bewirken des Auftretens des NEUVERSUCH-Signals in der Fig. 8A und das Bewirken des Auftretens von Änderungen der Markierungsbits von E -> M und E -> I in den Fig. 8B und 8B' ein. Ein detailliertes Schaltkreisdiagramm einer bevorzugten Ausführungsform für das Modul 101 wird in Fig. 18 gezeigt.
  • Um jetzt zu erklären, wie alle Module im High-Level-Cache- Speicher der Fig. 9 zusammenwirken, werden die Fig. 10-17 bereitgestellt. Jede der Fig. 10-17 ist die NAchbildung des Schaltkreises aus der Fig. 9; jedoch schließen sie zusätzlich Bezugsziffern ein, die detailliert zeigen, wie die Signalfolgen der Fig. 3-8C' im Schaltkreis der Fig. 9 auftreten.
  • In der Fig. 10 zeigen zum Beispiel die Bezugsziffern 31a bis 31e an, wie der LESE-Befehl 31 aus der Fig. 3 vom High- Level-Cache-Speicher für die Gruppe 18a verarbeitet wird. Anfangs wird dieser LESE-Befehl, wie durch die Bezugsziffer 31a gezeigt, aus dem Prozessorbus vom Eingabepuffer 90 empfangen. Dieser LESE-Befehl wird daraufhin an den Markierungsspeicher 91 gesendet, wie durch die Bezugsziffer 31b angezeigt. Der Markierungsspeicher 91 bestimmt dann, dass der LESE-Befehl, den er empfing, über eine Adresse verfügt, die mit keiner der Vergleichsadressen gleich ist, die innerhalb des Markierungsspeichers 91 gespeichert sind. Folglich wird der LESE-Befehl vom Markierungsspeicher 91 an die Warteschlange 99 weitergeleitet; und dies wird durch die Bezugsziffer 31c angezeigt. Von der Warteschlange 99 geht der LESE-Befehl zum Ausgabepuffer weiter, wie durch die Bezugsziffer 31b angezeigt; und dann wird der LESE-Befehl, wie durch die Bezugsziffer 31e angezeigt, an den Systembus gesendet.
  • Auf eine ähnliche Weise zeigen in der Fig. 10 die Bezugsziffern 32a bis 32g an, wie durch den High-Level-Cache- Speicher für die Gruppe 18a am Datenwort 32, das in der Fig. 3 gelesen wird, verarbeitet wird. Anfangs wird dieses Datenwort aus dem Systembus vom Eingabepuffer 95 empfangen, wie von der Bezugsziffer 32a angezeigt. Dann wird die Adresse für das empfangene Datenwort als eine Vergleichsadresse in den Markierungsspeicher 96 geschrieben, und die entsprechenden Markierungsbits werden im Markierungsspeicher 96 auf den "exklusiv" Zustand eingestellt. Dies wird durch die Bezugsziffer 31b angezeigt. Als nächstes wird das empfangene Datenwort aus dem Eingabepuffer 95, wie durch die Bezugsziffer 32c angezeigt, zur Warteschlange 98 überführt. Wie durch die Bezugsziffer 32d angegeben, wird danach dieses Datenwort in den Daten-RAM 92 geschrieben. Auch wird die Adresse des Datenwortes in der Warteschlange 98 als eine Vergleichsadresse in den Markierungsspeicher 91 geschrieben, und die Markierungsbits für diese Vergleichsadresse werden auf den "exklusiv" Zustand eingestellt. Dies wird von der Bezugsziffer 32e angezeigt. Danach wird das Datenwort aus der Warteschlange 98 an den Ausgabepuffer 93 überführt, wie durch die Bezugsziffer 32f angezeigt; und aus dem Ausgabepuffer wird das Datenwort, wie durch die Bezugsziffer 32g angezeigt, an den Prozessorbus gesendet.
  • In Fig. 11 zeigen die Bezugsziffern 36a-36g an, wie der Überwachungsbetrieb 36 aus der Fig. 4 im High-Level-Cache- Speicher für die Gruppe 18a auftritt. Dieser Überwachungsbetrieb beginnt mit dem Empfang des LESE-Befehls 35, der auf dem Systembus vom High-Level-Cache-Speicher für die Gruppe 18e gesendet wird, im Eingabepuffer 95; und dies wird durch die Bezugsziffer 36a angezeigt. Dann wird der LESE-Befehl aus dem Eingabepuffer 95 an den Markierungsspeicher 96 gesendet, wie durch die Bezugsziffer 36b gezeigt; und im Markierungsspeicher 96 wird ein ÜBEREINSTIMMUNGS-Signal erzeugt, das anzeigt, dass der LESE-Befehl eine Adresse aufweist, die mit einer Vergleichsadresse gleich ist, die im Markierungsspeicher gespeichert ist. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal werden die Markierungsbits für die übereinstimmende Vergleichsadresse, wie durch die Bezugsziffer 36c gezeigt, von exklusiv auf geteilt verändert. Auch weist der Markierungsspeicher 96 die Steuerschaltung 97 als Reaktion auf dieses ÜBEREINSTIMMUNGS- Signal an, ein GETEILT Steuersignal auf dem Systembus zu senden, was durch die Bezugsziffern 36d und 36e angezeigt wird. Als Reaktion auf das ÜBEREINSTIMMUNGS-Signal im Markierungsspeicher 96 bewirkt weiterhin dieser Markierungsspeicher, dass die übereinstimmende Vergleichsadresse zusammen mit einem Steuersignal in die Warteschlangenschaltung 98 geladen wird, wie durch die Bezugsziffer 36f angezeigt. Dieses Steuersignal und diese übereinstimmende Vergleichsadresse werden daraufhin an den Markierungsspeicher 91 überführt, wenn er nicht besetzt ist, wie durch die Bezugsziffer 36g angezeigt; und der Markierungsspeicher 91 reagiert auf das Steuersignal, indem er seine Markierungsbits für die übereinstimmende Vergleichsadresse von exklusiv auf geteilt verändert, wie durch die Bezugsziffer 36h angezeigt.
  • Als nächstes zeigt die Fig. 12 die Signalfolgen 40, 41, 42 und 45, die während der SCHREIB-Betriebe der Fig. 5A-5D im High-Level-Cache-Speicher für die Gruppe 18a auftreten. Anfänglich wird ein SCHREIB-Anforderungssignal WR vom Prozessorbus im Eingabepuffer 90 empfangen, wie durch die Bezugsziffer 40a angezeigt. Dann wird das SCHREIB-ANFORDERUNGS- Signal an den Markierungsspeicher 91 gesendet, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird. Dieses ÜBEREINSTIMMUNGS- Signal zeigt an, dass die SCHREIB-Anforderung für ein Datenwort ist, das eine Adresse aufweist, die mit einer Vergleichsadresse im Markierungsspeicher 91 gleich ist. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal und die "geteilt" Markierungsbits für die Vergleichsadresse weist der Markierungsspeicher 91 die Steuerschaltung 95 an, ein VERSCHIEBE-Signal auf dem Prozessorbus zu senden; und dies wird durch die Bezugsziffern 41a und 41b angezeigt. Als Reaktion auf das ÜBEREINSTIMMUNGS-Signal und die "geteilt" Markierungsbits, um die Vergleichsadresse in Übereinstimmung zu bringen, wird auch die SCHREIB-Anforderung in den Schaltkreis 99 überführt, wie durch die Bezugsziffer 42a angezeigt. Diese SCHREIB-Anforderung wird dann mittels des Ausgabepuffers 100 an den Systembus gesendet, wie durch die Bezugsziffern 42b und 42c angezeigt.
  • Als Reaktion auf das SCHREIB-ANFORDERUNGS-Signal 42c wird ein SCHREIB-ERTEILUNGS-Signal WG auf dem Systembus vom Hauptspeichermodul zurückgesendet; und dieses SCHREIB-ERTEILUNGS- Signal wird in den Eingabepuffer 95 geladen, wie durch die Bezugsziffer 45a angezeigt. Dann wird das SCHREIB-ERTEILUNGS- Signal an den Markierungsspeicher 96 überführt, wie durch die Bezugsziffer 45b angezeigt. Im Markierungsspeicher 96 wird ein ÜBEREINSTIMMUNGS-Signal erzeugt, das anzeigt, dass die empfangene SCHREIB-ERTEILUNG für ein Datenwort ist, das eine Adresse hat, die mit einer Vergleichsadresse im Markierungsspeicher 96 gleich ist. Dann werden als Reaktion auf das ÜBEREINSTIMMUNGS- Signal die Markierungsbits für die übereinstimmende Vergleichsadresse von geteilt auf modifiziert verändert, wie durch die Bezugsziffer 45c angezeigt. Als Reaktion auf das ÜBEREINSTIM- MUNGS-Signal im Markierungsspeicher 96 veranlasst dieser Markierungsspeicher, dass die übereinstimmende Vergleichsadresse zusammen mit einem Steuersignal in die Warteschlangenschaltung 98 geladen wird, wie durch die Bezugsziffer 45d angezeigt. Dieses Steuersignal und diese übereinstimmende Vergleichsadresse werden dann an den Markierungsspeicher 91 überführt, wenn er nicht besetzt ist, wie durch die Bezugsziffer 45e angezeigt; und der Markierungsspeicher 91 reagiert auf das Steuersignal, indem er seine Markierungsbits für die übereinstimmende Vergleichsadresse von geteilt auf modifiziert ändert, wie durch die Bezugsziffer 45f angezeigt. Daraufhin weist der Markierungsspeicher 91 die Steuerschaltung 94 an, das SCHREIB-ERTEILUNGS-Signal auf dem Prozessorbus zu senden, wie durch die Bezugsziffern 45g und 45h angezeigt.
  • Als nächstes zeigen in der Fig. 13 die Bezugsziffern 43a- 43e und 44a-44b jeweils an, wie der Überwachungsbetrieb 43 und der ungültig machende Betrieb 44 vom High-Level-Cache-Speicher für die Gruppe 18e in den Fig. 5B und 5C durchgeführt werden. Anfangs beginnt der Überwachungsbetrieb mit dem Laden des auf dem Systembus in der Fig. 5B gesendeten SCHREIB-ANFORDERUNGS- Signal WR in den Eingabepuffer 95; und dies wird durch die Bezugsziffer 43a angezeigt. Dieses SCHREIB-ANFORDERUNGS-Signal wird dann aus dem Eingabepuffer 95 an den Markierungsspeicher 96 überführt, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird. Dieses ÜBEREINSTIMMUNGS-Signal zeigt an, dass die SCHREIB- ANFORDERUNG für ein Datenwort ist, das eine Adresse aufweist, die mit einer Vergleichsadresse im Markierungsspeicher 96 gleich ist. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal werden die Markierungsbits für die übereinstimmende Vergleichsadresse im Markierungsspeicher 96 von geteilt auf ungültig geändert, wie durch die Bezugsziffer 43c angegeben. Als Reaktion auf das ÜBEREINSTIMMUNGS-Signal im Markierungsspeicher 96 bewirkt dieser Markierungsspeicher, dass die übereinstimmende Vergleichsadresse zusammen mit einem Steuersignal in die Warteschlangenschaltung 98 geladen wird, wie durch die Bezugsziffer 43d angezeigt. Das Steuersignal und die übereinstimmende Vergleichsadresse werden dann an den Markierungsspeicher 91 überführt, wenn er nicht besetzt ist, wie durch die Bezugsziffer 43e angezeigt; und der Markierungsspeicher 91 reagiert auf das Steuersignal durch die Änderung seiner Markierungsbits für die übereinstimmende Vergleichsadresse von geteilt auf ungültig, wie durch die Bezugsziffer 43f angezeigt. Dann weist der Markierungsspeicher 91 die Steuerschaltung 94 an, einen ungültig-machenden Befehl auf dem Prozessorbus zu senden; wie durch die Bezugsziffern 44a und 44b angezeigt.
  • Als nächstes zeigen in der Fig. 14 die Bezugsziffern 51a bis 51e an, wie der LESE-Befehl 51 der Fig. 3 vom High-Level- Cache-Speicher für die Gruppe 18a verarbeitet wird. Auch zeigen in der Fig. 14 die Bezugsziffern 52a bis 52g an, wie am Datenwort 52, das in der Fig. 6 gelesen wird, vom High-Level- Cache-Speicher für die Gruppe 18a gearbeitet wird. Die Signalfolge 51a-51e ist mit der Signalfolge 31a-31e identisch, die bereits in Verbindung mit der Fig. 10 beschrieben wurde, und solchermaßen braucht ihre Beschreibung nicht wiederholt zu werden. Auf eine ähnliche Weise ist die Signalfolge 52a-52g mit der Signalfolge 32a-32g identisch, die bereits in Verbindung mit der Fig. 10 beschrieben wurde, und solchermaßen braucht ihre Beschreibung nicht wiederholt zu werden.
  • Auch zeigen in der Fig. 14 die Bezugsziffern 55a-55b und 56a-56c jeweils an, wie der LESE-Befehl 55 und das Datenwort 56 der Fig. 7 vom High-Level-Cache-Speicher für die Gruppe 18a verarbeitet werden. Anfänglich wird der LESE-Befehl vom Prozessorbus im Eingabepuffer 90 empfangen, wie durch die Bezugsziffer 55a angezeigt. Dann wird der LESE-Befehl an den Markierungsspeicher 91 überführt, wie durch die Bezugsziffer 55b angezeigt, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird. Dieses ÜBEREINSTIMMUNGS-Signal zeigt an, dass der LESE-Befehl für ein Datenwort ist, das eine Adresse aufweist, die mit einer Vergleichsadresse im Markierungsspeicher 91 gleich ist. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal und den "exklusiv" Zustand der Markierungsbits für die übereinstimmende Vergleichsadresse wird ein Steuersignal vom Markierungsspeicher 91 an den Daten-RAM 92 gesendet, wie durch die Bezugsziffer 56a angezeigt. Dieses Steuersignal liest das adressierte Datenwort aus dem Daten-RAM 92 und sendet dieses Datenwort an den Ausgabepuffer 93, wie durch die Bezugsziffer 56b angezeigt. Dann sendet der Ausgabepuffer 93 das Datenwort an den Prozessorbus, wie durch die Bezugsziffer 56c angezeigt.
  • In der Fig. 15 zeigen die Bezugsziffern 60a-60b und 61a-61b jeweils an, wie das SCHREIB-ANFORDERUNGS-Signal und das NEUVERSUCH-Signal während des SCHREIB-Betriebs der Fig. 8a im High-Level-Cache-Speicher für die Gruppe 18a auftreten. Wie durch die Bezugsziffer 60a angezeigt, wird anfänglich dann das SCHREIB-ANFORDERUNGS-Signal vom Prozessorbus in den Eingabepuffer 90 geladen. Danach wird, wie durch die Bezugsziffer 60b angezeigt, das SCHREIB-ANFORDERUNGS-Signal an den Markierungsspeicher 91 gesendet, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird. Dieses ÜBEREINSTIMMUNGS-Signal zeigt an, dass die SCHREIB- ANFORDERUNG für ein Datenwort ist, das eine Adresse aufweist, die mit einer Vergleichsadresse im Markierungsspeicher 91 gleich ist. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal und den "exklusiv" Zustand der Markierungsbits für die übereinstimmende Vergleichsadresse weist der Markierungsspeicher 91 die Steuerschaltung 94 an, ein NEUVERSUCH-Signal auf dem Prozessorbus zu senden, wie durch die Bezugsziffer 61a und 61b angezeigt.
  • Gleichzeitig mit dem obigen Betrieb wird der Überwachungsbetrieb 62 in der Fig. 15 durchgeführt, worin jede SCHREIB- ANFORDERUNG, die am Systembus vorlegen kann (wie beispielsweise die SCHREIB-ANFORDERUNG 63), in den Eingabepuffer 95 geladen wird; und dies wird durch die Bezugsziffer 62a angezeigt. Wenn eine SCHREIB-ANFORDERUNG vorliegt, dann wird sie vom Eingabepuffer 95 an die SCHREIB-Steuerschaltung 101 überführt, wie durch die Bezugsziffer 62b angezeigt. Dann vergleicht die SCHREIB-Steuerschaltung 101 die SCHREIB-Anforderung aus dem Systembus mit dem SCHREIB-ANFORDERUNGS-Signal, das am Prozessorbus auftrat, wie durch die Bezugsziffer 60c angezeigt. Wenn die SCHREIB-Steuerschaltung 101 bestimmt, dass am Systembus keine SCHREIB-ANFORDERUNG mit derselben Schreibadresse wie die der SCHREIB-ANFODERUNG vorliegt, die am Prozessorbus auftrat, dann sendet die SCHREIB-Steuerschaltung 101 ein Steuersignal 62c an den Markierungsspeicher 91 und ein Steuersignal 62d an den Markierungsspeicher 96. Als Reaktion darauf ändert der Markierungsspeicher 91 die Markierungsbits des Datenwortes, das von der SCHREIB-Anforderung 60a geschrieben werden soll, von exklusiv auf modifiziert; und dies wird durch die Bezugsziffer 62e angezeigt. Auch ändert der Markierungsspeicher 96 seine intern gespeicherten Markierungsbits auf dieselbe Weise wie durch die Bezugsziffer 62f angezeigt.
  • Danach wird in der Fig. 15 ein anderes SCHREIB- ANFORDERUNGS-Signal im Eingabepuffer 90 empfangen, wie durch die Bezugsziffer 70a angezeigt. Dieses SCHREIB-ANFORDERUNGS-Signal tritt am Prozessorbus als Reaktion auf das zuvor gesendete NEUVERSUCH-Signal 61b auf. Aus dem Eingabepuffer 90 wird das SCHREIB-ANFORDERUNGS-Signal an den Markierungsspeicher 91 gesendet, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird, das anzeigt, dass die SCHREIB-ANFORDERUNG für ein Datenwort ist, das eine Adresse aufweist, die mit einer Vergleichsadresse im Markierungsspeicher 91 gleich ist. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal und den "modifiziert" Zustand der Markierungsbits für die übereinstimmende Vergleichsadresse weist der Markierungsspeicher 91 die Steuerschaltung 94 an, um ein SCHREIB-ERTEILUNGS-Signal auf dem Prozessorbus zu senden; und dies wird durch die Bezugsziffern 71a und 71b angezeigt.
  • In der Fig. 16 zeigen die Bezugsziffern 60a-60b und 61a-61b wiederum an, wie das SCHREIB-ANFORDERUNGS-Signal und NEUVERSUCH- Signal während des Schreibbetriebs aus der Fig. 8A im High- Level-Cache-Speicher für die Gruppe 18a auftreten. Dies ist eine Wiederholung dessen, was durch die Bezugsziffern 60a-60b und 61a-61b in der Fig. 15 gezeigt wird. Jedoch zeigt die Fig. 16 auch einen Überwachungsbetrieb, worin eine SCHREIB-ANFORDERUNG am Systembus erfasst wird, und zwar mit derselben Adresse wie die SCHREIB-ANFODERUNG, die am Prozessorbus erfolgte Dies entspricht der Signalfolge, die im High-Level-Cache-Speicher für die Gruppe 18a auftritt, wie in den Fig. 8B' und 8C' gezeigt.
  • Anfangs wird im Überwachungsbetrieb aus der Fig. 16 das SCHREIB-ANFORDERUNGS-Signal am Systembus in den Eingabepuffer 95 geladen, wie durch die Bezugsziffer 62a angezeigt. Dieses SCHREIB-ANFORDERUNGS-Signal wird daraufhin aus dem Eingabepuffer 95 an die SCHREIB-Steuerschaltung 101 überführt, wie durch die Bezugsziffer 62b angezeigt. Dann vergleicht die SCHREIB- Steuerschaltung 101 die SCHREIB-ANFORDERUNG aus dem Systembus mit dem SCHREIB-ANFORDERUNGS-Signal, das vom Prozessorbus empfangen wurde, wie durch die Bezugsziffer 60c angezeigt. Wenn die SCHREIB-Steuerschaltung 101 bestimmt, dass die SCHREIB- ANFORDERUNG aus dem Systembus über dieselbe Schreibadresse verfügt wie die SCHREIB-ANFORDERUNG aus dem Prozessorbus, sendet die SCHREIB-Steuerschaltung 101 ein Steuersignal an den Markierungsspeicher 91, wie durch die Bezugsziffer 62c' angezeigt. Als Reaktion auf dieses Steuersignal ändert der Markierungsspeicher 91 die Markierungsbits des Datenwortes, das geschrieben werden soll, von exklusiv auf ungültig; und dies wird durch die Bezugsziffer 62e' angezeigt.
  • Gleichzeitig mit dem obigen Betrieb wird die SCHREIB- ANFORDERUNG, die am Systembus erfolgt, vom Eingabepuffer 95 an den Markierungsspeicher 96 überführt, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird. Dieses ÜBEREINSTIMMUNGS-Signal zeigt an, dass die SCHREIB-ANFORDERUNG auf dem Systembus für ein Datenwort ist, das eine Vergleichsadresse aufweist, die sich im Markierungsspeicher 96 befindet. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal werden die Markierungsbits für die übereinstimmende Vergleichsadresse im Markierungsspeicher 96 von exklusiv auf ungültig verändert, wie durch die Bezugsziffer 64a angezeigt. Dann sendet der Markierungsspeicher 96 einen ungültig-machenden Befehl an die Warteschlangenschaltung 98, wie durch die Bezugsziffer 64b angezeigt; und dieser ungültigmachende Befehl wird anschließend über den Ausgabepuffer 93 an den Prozessorbus gesendet, wie durch die Bezugsziffern 64c und 64d angezeigt.
  • Danach wird ein anderes SCHREIB-ANFORDERUNGS-Signal im Eingabepuffer 90 empfangen, wie durch die Bezugsziffer 80a angezeigt. Diese SCHREIB-ANFORDERUNG erfolgt am Prozessorbus als Reaktion auf das NEUVERSUCH-Signal 61b, das zuvor von der Steuerschaltung 94 gesendet wurde. Aus dem Eingabepuffer 90 wird das SCHREIB-ANFORDERUNGS-Signal an den Markierungsspeicher 91 gesendet, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird, das anzeigt, dass das SCHREIB-ANFORDERUNGS-Signal 80b für ein Datenwort ist, das eine Vergleichsadresse aufweist, die sich im Markierungsspeicher 91 befindet. Als Reaktion auf dieses ÜBER- EINSTIMMUNGS-Signal, die Markierungsbits für die übereinstimmende Vergleichsadresse, weist der Markierungs-RAM 91 die Steuerschaltung 94 an, ein VERSCHIEBE-Signal auf dem Prozessorbus zu senden, wie durch die Bezugsziffern 81a und 81b angezeigt. Als Reaktion auf das ÜBEREINSTIMMUNGS-Signal und den "ungültig" Zustand der Markierungsbits für die übereinstimmende Vergleichsadresse veranlasst der Markierungsspeicher 91 auch, dass ein LESE-Befehl in die Warteschlangenschaltung 99 geladen wird, wie durch die Bezugsziffer 82a angezeigt. Dieser LESE-Befehl wird daraufhin über den Ausgabepuffer 100 an den Systembus überführt, wie durch die Bezugsziffern 82b und 82c angezeigt.
  • Dieser LESE-Befehl 82c wandert auf dem Systembus zum High- Level-Cache-Speicher für die Gruppe 18e, wo, wie in der Fig. 17 gezeigt, auf ihn eingewirkt wird. Anfänglich wird der LESE- Befehl im Eingabepuffer 95 empfangen, wie durch die Bezugsziffer 83a angezeigt. Dann wird der LESE-Befehl an den Markierungsspeicher 96 überführt, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird, das anzeigt, dass der LESE-Befehl für ein Datenwort ist, das eine Adresse hat, die mit einer Vergleichsadresse im Markierungsspeicher übereinstimmt. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal und den "modifiziert" Zustand der Markierungsbits für die übereinstimmende Vergleichsadresse ändert der Markierungsspeicher 96 die Markierungsbits von modifiziert auf ungültig, wie durch die Bezugsziffer 84a angezeigt, und der Markierungsspeicher 96 weist die Steuerschaltung 97 an, ein VERSCHIEBE-Signal auf dem Systembus zu gesendet, wie durch die Bezugsziffern 84b und 84c angezeigt. Weiterhin sendet der Markierungsspeicher 96 ein Steuersignal an die Warteschlangenschaltung 96, wie durch die Bezugsziffer 85a angezeigt, die bewirkt, dass drei Aktivitäten vorgenommen werden. Als erstes werden die Markierungsbits für die Adresse des Datenwortes, das gelesen werden soll, im Markierungs-RAM 91 von modifiziert auf ungültig verändert, wie durch die Bezugsziffern 85b und 85c angezeigt. Dann wird ein ungültigmachender Befehl für das Datenwort, das gelesen werden soll, vom Ausgabepuffer 93 an den Prozessorbus gesendet, wie durch die Bezugsziffern 85d und 85e angezeigt. Daraufhin wird das Datenwort, das gelesen werden soll, vom Daten-RAM 92 an den Ausgabepuffer 93 überführt, wie durch die Bezugsziffern 86a und 86b angezeigt. Dieses Datenwort wird dann vom Ausgabepuffer 93 an den Systembus überführt, wie durch die Bezugsziffern 86c, 86d, 86f und 86g angezeigt.
  • Kehrt man jetzt zur Fig. 18 zurück, wird eine bevorzugte interne Struktur für das Modul 101 innerhalb des High-Level- Cache-Speichers beschrieben. Modul 101 wird in vielen Signalfolgen verwendet, die in den Fig. 15 und 16 auftreten, worin SCHREIB-ANFORDERUNGEN für Datenwörter verarbeitet werden, die "exklusiv" Markierungsbits aufweisen. Diese Ausführungsform der Fig. 18 für das Modul 101 schließt eine Komparatorchaltung 110, ein NEIN-Gatter 111, ein Paar von UND-Gattern 112 und 113 und vier Synchronisierungsschaltungen 114-117 ein; sie alle sind wie gezeigt miteinander verbunden. Jede Komponente 110-117 wird für sich im Stand der Technik beschrieben. Zum Beispiel kann jeder Synchronisierer wie im US-Patent 4.839.541 beschrieben aufgebaut sein.
  • Im Betrieb wird das SCHREIB-ANFORDERUNGS-Signal 60a vom Prozessorbus in den Eingabepuffer 90 geladen. Dann wird das SCHREIB-ANFORDERUNGS-Signal an den Markierungsspeicher 91 gesendet, wie durch die Bezugsziffer 60b gezeigt, worin ein ÜBEREINSTIMMUNGS-Signal erzeugt wird. Als Reaktion auf dieses ÜBEREINSTIMMUNGS-Signal und auf den "exklusiv" Zustand der Markierungsbits für die übereinstimmende Vergleichsadresse veranlasst der Markierungsspeicher 91, dass ein NEUVERSUCH- Signal auf dem Prozessorbus gesendet wird, wie durch die Bezugsziffer 61b angezeigt.
  • Während die obigen Betriebe stattfinden, wird die SCHREIB- ANFORDERUNG 60a aus dem Eingabepuffer 90 an die Synchronisierungsschaltung 114 überführt und das "exklusiv" Markierungsbit für die übereinstimmende Vergleichsadresse wird aus dem Markierungsspeicher 91 an die Synchronisierungsschaltung 115 überführt. Dies wird durch die Bezugsziffer 60c angezeigt. Gleichzeitig wird jede SCHREIB-ANFORDERUNG, die am Systembus vorhanden sein kann, in den Eingabepuffer 95 geladen, wie durch die Bezugsziffer 62a angezeigt. Dann vergleicht der Komparator 110 die SCHREIB-ANFORDERUNG, die sich in der Synchronisierungsschaltung 114 befindet, mit dem Inhalt des Eingabepuffers 95. Wenn die Synchronisierungsschaltung 114 und der Eingabepuffer 95 beide eine SCHREIB-ANFORDERUNG für dasselbe Datenwort enthalten, dann erzeugt der Komparator 110 ein GLEICH-Signal an seinem Ausgang.
  • Wenn das GLEICH-Signal nicht auftritt, dann sendet das UND- Gatter 112 ein Steuersignal an die Synchronisierungsschaltung 117, die den Markierungsspeicher 91 anweist, die Markierungsbits für die übereinstimmende Vergleichsadresse von exklusiv auf modifiziert zu ändern; und dies wird durch die Bezugsziffer 62c angezeigt. Auch wird dasselbe Steuersignal an den Markierungsspeicher 96 gesendet; und als Reaktion darauf ändert der Markierungsspeicher 96 seine Markierungsbits für die übereinstimmende Vergleichsadresse auf die gleiche Weise. Dies wird durch die Bezugsziffer 62d angezeigt. Wenn umgekehrt das GLEICH- Signal auftritt, dann sendet das UND-Gatter 113 ein Steuersignal an die Synchronisierungsschaltung 116, die den Markierungsspeicher 91 anweist, die Markierungsbits für die übereinstimmende Vergleichsadresse von exklusiv auf ungültig zu ändern; und dies wird durch die Bezugsziffer 62c' angezeigt.
  • Danach wird als Reaktion auf das NEUVERSUCH-Signal 61b eine zweite SCHREIB-Anforderung im Eingabepuffer 90 empfangen, wie durch die Bezugsziffer 70a angezeigt. Diese zweite SCHREIB- Anforderung wird daraufhin an den Markierungsspeicher 91 überführt, wie durch die Bezugsziffer 70b angezeigt; und als Reaktion darauf wird ein ÜBEREINSTIMMUNGS-Signal erzeugt. Wenn die Markierungsbits für die übereinstimmende Vergleichsadresse durch das Steuersignal 62c auf den modifizierten Zustand verändert wurden, dann wird ein SCHREIB-ERTEILUNGS-Signal auf dem Prozessorbus gesendet, wie durch die Bezugsziffer 71b angezeigt. Wenn anderenfalls die Markierungsbits für die übereinstimmende Vergleichsadresse durch das Steuersignal 62c' auf den "ungültig" Zustand verändert wurden, wird das VERSCHIEBE-Signal auf dem Prozessorbus gesendet, wie durch die Bezugsziffer 81b angezeigt.
  • Mit der oben beschriebenen Ausführungsform für das Modul 101 können alle Signale, die am Prozessorbus auftreten, auf einen Takt CK1 synchronisiert werden, und alle Signale, die am Systembus auftreten, auf einen anderen Takt CK2 synchronisiert werden, der asynchron zum Takt CK1 ist. Diese zwei asynchronen Takte werden keine Fehlfunktion im Modul 101 bewirken, da alle Signale, die durch den Komparator 110 und die logischen Gatter 111-113 gehen, auf nur einen einzigen Takt synchronisiert werden (der der Systembus-Takt CK2 ist). Auf eine ähnliche Weise werden diese zwei asynchronen Takte nicht die Fehlfunktion des Markierungsspeichers 91 bewirken, da alle Signale, die er empfängt, auf nur einen einzigen Takt synchronisiert werden (der der Prozessorbus-Takt CK1 ist).
  • Als nächstes sei als eine Alternative angenommen, dass alle Signale, die am Prozessorbus auftreten, und alle Signale, die am Systembus auftreten, auf denselben Takt CK1 synchronisiert werden. In diesem Fall kann die interne Struktur für das Modul 101 der Fig. 18 wie in der Fig. 19 gezeigt, verändert werden. Mit dieser Modifikation kann kein NEUVERSUCH an den Prozessorbus gesendet werden und es kann keine zweite SCHREIB-ANFORDERUNG vom Prozessorbus empfangen werden. Als Reaktion auf die erste SCHREIB-Anforderung 60a können stattdessen entweder das SCHREIB- ERTEILUNGS-Signal 71b oder das VERSCHIEBE-Signal 81b an den Prozessorbus gesendet werden.
  • Anfangs wird in der Fig. 19 das SCHREIB-ANFORDERUNGS-Signal 60a aus dem Prozessorbus in den Eingabepuffer 90 geladen; und von da wird das SCHREIB-ANFORDERUNGS-Signal an den Markierungsspeicher 91 gesendet. Daraufhin wird ein ÜBEREINSTIMMUNGS-Signal erzeugt, wenn der Markierungsspeicher 91 eine Vergleichsadresse enthält, die mit der Adresse des Datenwortes gleich ist, das geschrieben werden soll. Als Reaktion auf dieses ÜBEREINSTIM- MUNGS-Signal wird die Markierung für die übereinstimmende Vergleichsadresse direkt an die UND-Gatter 112 und 113 gesendet. Gleichzeitig wird jede SCHREIB-ANFORDERUNG, die am Systembus vorliegen kann, in den Eingabepuffer 95 geladen. Dann vergleicht der Komparator 110 den Inhalt des Eingabepuffers 95 mit der SCHREIB-ANFORDERUNG, die sich im Eingabepuffer 90 befindet; und ein GLEICH-Signal wird erzeugt, wenn die Eingabepuffer 90 und 95 beide eine SCHREIB-ANFORDERUNG für dasselbe Datenwort enthalten.
  • Wenn das GLEICH-Signal nicht auftritt, während das UND- Gatter 112 ein "exklusiv" Markierungsbit aus dem Markierungsspeicher 91 empfängt, dann veranlasst das UND-Gatter 112, dass das Markierungsbit in einem Markierungsspeicher 91 von exklusiv auf modifiziert verändert wird, und veranlasst, dass das SCHREIB-ERTEILUNGS-Signal auf dem Prozessorbus gesendet wird. Dies wird durch die Bezugsziffern 62c und 71b angezeigt. Wenn umgekehrt das GLEICH-Signal auftritt, während das UND-Gatter 113 das "exklusiv" Markierungsbit aus dem Markierungsspeicher 91 empfängt, dann bewirkt das UND-Gatter 113, dass das exklusive Markierungsbit auf ungültig geändert wird, und bewirkt, dass das VERSCHIEBE-Signal auf dem Prozessorbus gesendet wird. Dies wird durch die Bezugsziffern 62c' und 81b angezeigt.
  • Verschiedene Signalfolgen wurden oben als getrennt voneinander auftretend beschrieben, wie in den Fig. 3-8C' und 10-17 gezeigt. Zusätzlich können jedoch viele Kombinationen dieser gleichen Signalfolgen gleichzeitig erfolgen
  • Zum Beispiel kann die Signalfolge aus der Fig. 4 gleichzeitig mit der Signalfolge aus der Fig. 7 auftreten. In diesem Fall liest der Digitalrechner P20 ein Datenwort von dem Hauptspeicher am Systembus (Fig. 4), während der Digitalrechner P1 dasselbe Datenwort von seinem High-Level-Cache-Speicher liest (Fig. 7). Um das obige zu bewerkstelligen, sendet der High- Level-Cache-Speicher, der am Digitalrechner P1 angekoppelt ist, ein GETEILT Steuersignal auf dem Systembus, indem die Signalfolge 36a-36h durchgeführt wird, die in der Fig. 11 im Detail beschrieben wird; und sendet gleichzeitig ein Datenwort auf dem Prozessorbus, indem die Signalfolge 55a-56c durchgeführt wird, die detailliert in der Fig. 14 beschrieben wird. Dieser gleichzeitige Betrieb ist möglich, da die Markierungsspeicher 91 und 96 parallel miteinander arbeiten.
  • Als weiteres Beispiel kann der High-Level-Cache-Speicher, der den Überwachungsbetrieb 83 in Fig. 8C' durchführt, gleichzeitig ein Datenwort an einen seiner Digitalrechner P17-P20 überführen, indem die Signalfolgen 55 und 56 der Fig. 7 durchgeführt werden. Während des Überwachungsbetriebs sendet der High-Level-Cache-Speicher ein VERSCHIEBE-Signal auf dem Systembus, wie durch die Signalfolge 83a-84c in der Fig. 17 dargestellt; und während des LESE-Betriebs wird das Datenwort gleichzeitig auf dem Prozessorbus gesendet, wie durch die Signalfolge 55a-56c der Fig. 14 dargestellt. Hier ist dieser gleichzeitige Betrieb wiederum möglich, da die Markierungsspeicher 91 und 96 parallel miteinander arbeiten.
  • Auf der Grundlage der obigen detaillierten Beschreibung der Fig. 1 bis 19 wird es dem durchschnittlichen Fachmann auf dem Gebiet ersichtlich sein, dass viele Modifikationen an den bevorzugten dargestellten Verfahren und Schaltungen vorgenommen werden können, ohne sich von der Natur und dem Geist der vorliegenden Erfindung zu lösen. Entsprechend ist es klar, dass die vorliegende Erfindung nicht nur auf die dargestellten bevorzugten Ausführungsformen eingeschränkt ist, sondern durch die an Ansprüche definiert wird.

Claims (10)

1. Ein Verfahren zum Durchführen von Lesebefehlen in einem Datenverarbeitungssystem, das folgendes umfasst: einen Systembus, der einen daran gekoppelten Hauptspeicher aufweist, mehrere High-Level-Cache-Speicher, die jeweils einen am Systembus gekoppelten ersten Anschluss und einen am jeweiligen Prozessorbus gekoppelten zweiten Anschluss aufweisen, und wobei jeder Prozessorbus mittels jeweiliger Low-Level-Cache-Speicher mit jeweiligen Digitalrechnern verbunden wird; wobei
a. jeder High-Level-Cache-Speicher über einen ersten Markierungsspeicher verfügt, der eine Gruppe von Vergleichsadressen mit jeweiligen Markierungsbits S, M, I und E speichert, der mit dem ersten Anschluss verbunden ist, und LESE-Befehle aus dem Systembus empfängt, und über einen zweiten Markierungsspeicher verfügt, der dieselbe Gruppe an Vergleichsadressen mit jeweiligen Markierungsbits speichert, der mit dem zweiten Anschluss verbunden ist, und LESE-Befehle aus einem Prozessorbus empfängt, um unabhängig Übereinstimmungssignale zu erzeugen;
b. die jeweiligen Markierungsbits S, M, I, E in jedem High- Level-Cache-Speicher jedes Datenwort als gemeinsam benutzt, modifiziert, ungültig oder exklusiv bezeichnen, wobei Bit S wahr ist, wenn das Datenwort in mehr als in einem der High-Level- Cache-Speicher gespeichert ist, Bit M wahr ist, wenn das Datenwort durch einen der Rechner modifiziert wurde, der durch den Prozessorbus mit dem High-Level-Cache verbunden ist, Bit I wahr ist, wenn das Datenwort im High-Level-Cache nicht verwendet werden kann, und Bit E wahr ist, wenn das Datenwort in einem einzigen High-Level-Cache gespeichert wird;
c. jeder Low-Level-Cache nur Datenwörter mit Vergleichsadressen und jeweiligen Markierungsbits S, M, I speichert; und
d. jeder High-Level-Cache sofort auf zwei unterschiedliche LESE-Befehle reagiert, die am Prozessorbus und am Systembus auftreten; wodurch
d1. wenn der LESE-Befehl am Prozessorbus für Daten ist, die im High-Level-Cache als exklusiv markiert sind, das zweite Übereinstimmungssignal verwendet wird, um das Datenwort aus dem High-Level-Cache zurückzuholen und um es über den Prozessorbus als ein Datenwort, das als gemeinsam benutzt markiert ist, an den Low-Level-Cache zu senden,
d2, wenn der LESE-Befehl am Systembus für ein Datenwort ist, das im High-Level-Cache als exklusiv markiert wird, daraufhin das erste Übereinstimmungssignal verwendet wird, um ein GEMEINSAM BENUTZT Steuersignal am Systembus zu erzeugen, das anzeigt, dass das Wort mit dem Sender des LESE-Befehls gemeinsam benutzt wird, während gleichzeitig der High-Level-Cache die Markierungsbits in ihren Markierungsspeichern von exklusiv auf gemeinsam benutzt verändert, und
d3. wenn der LESE-Befehl am Systembus für ein Datenwort ist, das im High-Level-Cache als modifiziert markiert wird, daraufhin das zweite Übereinstimmungssignal verwendet wird, um ein zweites Steuersignal am Systembus zu erzeugen, das anzeigt, dass die Durchführung des LESE-Befehls verschoben werden muss.
2. Ein Verfahren zum Durchführen von Schreibfehlen in einem Datenverarbeitungssystem, das folgendes umfasst: einen Systembus, der einen daran gekoppelten Hauptspeicher aufweist, mehrere High-Level-Cache-Speicher, die jeweils einen am Systembus gekoppelten ersten Anschluss und einen am jeweiligen Prozessorbus gekoppelten zweiten Anschluss aufweisen, und wobei jeder Prozessorbus mittels jeweiliger Low-Level-Cache-Speicher mit jeweiligen Digitalrechnern verbunden wird; wobei
a. jeder High-Level-Cache-Speicher über einen ersten Markierungsspeicher verfügt, der eine Gruppe von Vergleichsadressen mit jeweiligen Markierungsbits S, M, I und E speichert, der mit dem ersten Anschluss verbunden ist, und über einen zweiten Markierungsspeicher verfügt, der dieselbe Gruppe an Vergleichsadressen mit jeweiligen Markierungsbits speichert, der mit dem zweiten Anschluss verbunden ist, um unabhängig Übereinstimmungssignale zu erzeugen;
b. die jeweiligen Markierungsbits S, M, I, E in jedem High- Level-Cache-Speicher jedes Datenwort als gemeinsam benutzt, modifiziert, ungültig oder exklusiv bezeichnen, wobei Bit S wahr ist, wenn das Datenwort in mehr als in einem der High-Level- Cache-Speicher gespeichert ist, Bit M wahr ist, wenn das Datenwort durch einen der Rechner modifiziert wurde, der durch den Prozessorbus mit dem High-Level-Cache verbunden ist, Bit I wahr ist, wenn das Datenwort im High-Level-Cache nicht verwendet werden kann, und Bit E wahr ist, wenn das Datenwort in einem einzigen High-Level-Cache gespeichert wird;
c. jeder Low-Level-Cache nur Datenwörter mit Vergleichsadressen und jeweiligen Markierungsbits S, M, I speichert; wodurch
d. die Durchführung eines SCHREIB-Befehls von einem der Rechner eingeleitet wird, indem der jeweilige Low-Level-Cache dieses einen Rechners adressiert wird, um das zu modifizierende Datenwort zu erhalten, und wenn S wahr ist, wird dann eine SCHREIB-ANFORDERUNG an den entsprechenden High-Level-Cache gesendet, der daraufhin seine eigenen Markierungsbits überprüft, und
d1. wenn S im entsprechenden High-Level-Cache wahr ist, eine SCHREIB-ANFORDERUNG auf dem Systembus gesendet wird, und als Reaktion darauf die anderen High-Level-Caches und die Low- Level-Caches an ihren zweiten Anschluss ihre Markierung für das adressierte Datenwort auf I setzen, und ein SCHREIB-ERTEILUNGS- Signal wird zurück an den einen Low-Level-Cache gesendet, um dort die Markierung von S auf M zu verändern, wohingegen
d2. wenn E im entsprechenden High-Level-Cache wahr ist, daraufhin der Systembus überwacht wird und eine SCHREIB- ERTEILUNG zurück an den Low-Level-Cache des einen Rechners gesendet wird, sofern von der Überwachung am Systembus keine SCHREIB-ANFORDERUNG für das adressierte Wort erfasst wird.
3. Ein Verfahren nach Anspruch 2, wobei der Systembus und jeder Prozessorbus auf jeweilige Takte synchronisiert sind, die zueinander asynchron sind.
4. Ein Verfahren nach Anspruch 3, wobei zwischen dem Empfangen des SCHREIB-ANFORDERUNGS-Signals und dem Senden des SCHREIB-ERTEILUNGS-Signals der eine High-Level-Cache-Speicher von seinem zweiten Anschluss ein NEUVERSUCH-Signal an den damit verbundenen Prozessorbus sendet und ein anderes SCHREIB- ANFORDERUNGS-Signal daraus empfängt.
5. Ein Verfahren nach Anspruch 2, wobei der Systembus und jeder Prozessorbus auf denselben Takt synchronisiert sind.
6. Ein Verfahren nach Anspruch 5, wobei der eine High- Level-Cache-Speicher das SCHREIB-ERTEILUNGS-Signal von seinem zweiten Anschluss an den Prozessorbus sendet, der damit verbunden ist, ohne irgendein NEUVERSUCH-Signal an diesen Prozessorbus zu senden.
7. Ein Verfahren nach Anspruch 2, wobei der eine High- Level-Cache-Speicher die Markierungsbits für das Datenwort von exklusiv auf modifiziert ändert, wenn das SCHREIB-ERTEILUNGS- Signal vom zweiten Anschluss des einen High-Level-Cache- Speichers gesendet wird.
8. Ein Verfahren nach Anspruch 2, wobei der eine High- Level-Cache-Speicher den Systembus überwacht und die Markierungsbits für das Datenwort von exklusiv auf gemeinsam benutzt verändert, wenn das Datenwort aus dem Hauptspeicher von einem anderen High-Level-Cache-Speicher gelesen wird.
9. Ein Verfahren nach Anspruch 2, wobei der eine High- Level-Cache-Speicher den Systembus überwacht und die Markierungsbits für das Datenwort von exklusiv auf ungültig verändert, wenn eine SCHREIB-ANFORDERUNG für das Datenwort am Systembus von einem anderen High-Level-Cache-Speicher erfolgt.
10. Ein Verfahren nach den Ansprüchen 1 oder 2, wobei die Markierungsbits in einem High-Level-Cache-Speicher damit fortfahren, ein Datenwort als exklusiv zu bezeichnen, selbst wenn dieses Datenwort von mehreren Digitalrechnern am Prozessorbus gelesen wird, der mit dem zweiten Anschluss des einen High-Level-Cache-Speichers verbunden ist.
DE69705072T 1996-01-25 1997-01-24 Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem Expired - Fee Related DE69705072T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US59184396A 1996-01-25 1996-01-25
US08/591,844 US5813034A (en) 1996-01-25 1996-01-25 Method and circuitry for modifying data words in a multi-level distributed data processing system
PCT/US1997/001122 WO1997027543A1 (en) 1996-01-25 1997-01-24 Method and circuitry for executing read commands and modifying data words in a multi-level distributed data processing system

Publications (2)

Publication Number Publication Date
DE69705072D1 DE69705072D1 (de) 2001-07-05
DE69705072T2 true DE69705072T2 (de) 2002-03-21

Family

ID=27081278

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69705072T Expired - Fee Related DE69705072T2 (de) 1996-01-25 1997-01-24 Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem

Country Status (4)

Country Link
EP (1) EP0976046B1 (de)
JP (1) JP3919224B2 (de)
DE (1) DE69705072T2 (de)
WO (1) WO1997027543A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1163587A1 (de) * 1999-02-26 2001-12-19 Fujitsu Siemens Computers GmbH Einrichtung zur erhöhung der leistungsfähigkeit von prozessorsystemen
US7484044B2 (en) * 2003-09-12 2009-01-27 Intel Corporation Method and apparatus for joint cache coherency states in multi-interface caches
US7533191B2 (en) * 2006-06-30 2009-05-12 Intel Corporation Methods and arrangements for devices to share a common address on a bus
US11481152B2 (en) * 2019-12-30 2022-10-25 Micron Technology, Inc. Execution of commands addressed to a logical block

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US5623632A (en) * 1995-05-17 1997-04-22 International Business Machines Corporation System and method for improving multilevel cache performance in a multiprocessing system

Also Published As

Publication number Publication date
WO1997027543A1 (en) 1997-07-31
EP0976046B1 (de) 2001-05-30
JP2000504130A (ja) 2000-04-04
JP3919224B2 (ja) 2007-05-23
DE69705072D1 (de) 2001-07-05
EP0976046A1 (de) 2000-02-02

Similar Documents

Publication Publication Date Title
DE3011552C2 (de)
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE69125393T2 (de) Zwei toren inhaltsaddressierbare speicherzelle und matrix
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE3854481T2 (de) Datenverarbeitungsverfahren in einem dezentralisierten Verarbeitungssystem.
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE3932675C2 (de)
DE2856133C2 (de) Datenverarbeitungsvorrichtung mit einem Hauptspeicher und einem Assoziativspeicher als Pufferspeicher
DE3689042T2 (de) Gerät zur Pufferung von Schreibanforderungen.
DE3485905T2 (de) Adressenuebersetzungsspeicher.
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE3851554T2 (de) Steuerungsanordnung für gemeinschaftlichen Speicher.
DE2819571A1 (de) Datenverarbeitungsanlage mit mehreren prozessoren
DE2350215A1 (de) Rechnersystem sowie bei diesem verwendbares mehrebenen-speichersystem
DE112006003917T5 (de) Verfahren, Gerät und System angewendet in einem Cachespeicher-Kohärenzprotokoll
DE3439302A1 (de) Speichersteuerungsvorrichtung
DE3688738T2 (de) Musteradressierbarer speicher.
DE3588061T2 (de) Speicherzugriffs-Steuerungssystem und -Verfahren für ein Informationsverarbeitungsgerät.
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
DE3750045T2 (de) Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten.
DE69705072T2 (de) Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem
DE69909400T2 (de) Verfahren zur Steuerung eines Cache-Speichers in einem Multiprozessorsystem und Multiprozessorsystem

Legal Events

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