DE69203842T2 - Speichersteuerungsvorrichtung mit Snoop-Mechanismus. - Google Patents

Speichersteuerungsvorrichtung mit Snoop-Mechanismus.

Info

Publication number
DE69203842T2
DE69203842T2 DE69203842T DE69203842T DE69203842T2 DE 69203842 T2 DE69203842 T2 DE 69203842T2 DE 69203842 T DE69203842 T DE 69203842T DE 69203842 T DE69203842 T DE 69203842T DE 69203842 T2 DE69203842 T2 DE 69203842T2
Authority
DE
Germany
Prior art keywords
memory
snoop
cycle
write
planar
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
DE69203842T
Other languages
English (en)
Other versions
DE69203842D1 (de
Inventor
Michael Thomas Derwin
William Alan Wall
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69203842D1 publication Critical patent/DE69203842D1/de
Application granted granted Critical
Publication of DE69203842T2 publication Critical patent/DE69203842T2/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/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

  • Diese Erfindung bezieht sich auf das Gebiet der Datenverarbeitung und im einzelnen auf eine verbesserte Speichersteuerungsvorrichtung für einen Rechner mit einem Speichersystem, das mit einem write-through Cache ausgestattet ist und mit Snoop-Zyklen arbeitet, die Zeilen in diesem Cache ungültig machen.
  • Speichersysteme sind bekannt, die einen Hauptspeicher und einen Hochgeschwindigkeits-Cache enthalten, in dem Daten vorübergehend gespeichert werden können, so daß ein Prozessor oder ein Mikroprozessor auf diese Daten schnell zugreifen können. In einem Rechner, in dem mehrere Geräte auf den cachefähigen Speicher Zugriff haben, muß die Kohärenz des Cache aufrechterhalten werden, um den Cache-Inhalt mit dem des Speichers konsistent zu halten. Man stelle sich folgende Situation vor: eine zentrale Verarbeitungseinheit (CPU) nutzt einen write-through Cache zur temporären Speicherung von Daten aus dem Hauptspeicher, während ein anderer Busmaster ebenfalls auf die Daten im Nauptspeicher Zugriff hat. Wenn der Busmaster neue Daten in eine Speicherstelle schreibt, die sich auch zufällig gerade im CPU-Cache befindet, muß in einem Ungültigkeitszyklus die CPU darüber informiert werden, daß die Daten in ihrem Cache nicht mehr gültig sind. Ein Ungültigkeitszyklus, auch bekannt als "Snoop"-Zyklus, muß gleichzeitig mit dem Schreibzyklus des Eusmasters stattfinden. Durch eine solche Maßnahme wird jede Latenz zwischen dem Zeitpunkt, an dem neue Daten in den Hauptspeicher geschrieben werden, und dem Zeitpunkt, an dem die CPU weiß, daß seine Cache-Stelle ungültig ist, ausgeschaltet.
  • Ein solches System wird beispielsweise im IBM Technical Disclosure Bulletin, Band 34, Nr. 1, Juni 1991, beschrieben.
  • Wenn ein Busmaster verschiedene Schreibzyklen in den Hauptspeicher ausführt, muß jede betroffene Cache-Zeile im Cache ungültig gemacht werden. Solange der Snoop-Grundzyklus nicht länger dauert, als ein Speicher-Schreibzyklus, treten bei der Ausführung aufeinanderfolgender Snoop-Zyklen keine Probleme auf. Ist jedoch der Snoop-Grundzyklus länger als der Speicher-Schreibzyklus, kann eine der beiden folgenden Situationen auftreten: 1) die Cache-Kohärenz (der Inhalt des Cache ist derselbe wie der entsprechende Inhalt im Hauptspeicher) bleibt nicht gewahrt, weil der Snoop-Steuermechanismus mit den Busmaster-Schreibzyklen nicht Schritt halten kann, oder 2) der Busmaster ist gezwungen, langsamere Zyklen zu fahren, so daß die Snoop-Zyklen beendet werden können. Können die Snoop-Zyklen im Pipeline-Verfahren verarbeitet werden, sind solche Situationen vermeidbar.
  • Diese Erfindung stellt eine Speichersteuerungsvorrichtung für einen Rechner zur Verfügung, der ein Speichersystem mit einem Planarspeicher und einem write-through Cache hat, und Busmaster-Mittel, die in aufeinanderfolgenden Speicher-Schreibzyklen eine Vielzahl von planaren Schreiboperationen ausführen können, wobei diese Schreiboperationen das Ungültigmachen verschiedener Cache-Zeilen erfordern, die Speichersteuerungsvorrichtung an das genannte Speichersystem und das genannte Busmaster-Mittel angeschlossen werden kann, um einen Zugriff auf den genannten Planarspeicher zu ermöglichen, und die genannte Speichersteuerungsvorrichtung folgendes umfaßt: einen Snoop-Mechanismus, der im ersten der genannten aufeinanderfolgenden Speicherzyklen arbeiten kann und einen Snoop-Grundzyklus bewirkt, der eine erste Cache-Zeile ungültig macht, die einer Stelle in dem Planarspeicher entspricht, in die in dem genannten ersten Schreibzyklus geschrieben wurde, wobei der genannte Snoop-Grundzyklus länger ist, als ein Speicher- Schreibzyklus; dadurch gekennzeichnet, daß der Snoop-Mechanismus eine Überwachungslogik zur Überwachung der Steuersignale von den genannten Busmaster-Mitteln (52, 54) umfaßt, um festzustellen, ob ein zweiter Speicher-Schreibzyklus gestartet wurde, bevor der genannte Snoop-Grundzyklus beendet ist, und daß ein Steuersignal erzeugt wird, welches diesen Zustand anzeigt; und eine Snoop-Steuerlogik, die an die genannte Überwachungslogik angeschlossen ist, um unmittelbar danach einen Pipeline-Snoop-Zyklus einzuleiten, der mit dem genannten Snoop-Grundzyklus im Pipeline-Modus verarbeitet wird, um eine zweite Cache-Zeile in Reaktion auf das empfangene genannte Steuersignal ungültig zu machen, wobei der genannte Pipeline-Snoop-Zyklus genauso lange dauert, wie der Speicher- Schreibzyklus.
  • Durch die Erfindung kann eine Speichersteuerungsvorrichtung mit einem verbesserten Snoop-Steuermechanismus für ein Speichersystem mit einem write-through Cache bereitgestellt werden, wobei dieser Mechanismus aufeinanderfolgende Snoop-Zyklen mit einem Snoop-Grundzyklus, der länger dauert, als ein Speicher-Schreibzyklus, im Pipeline-Verfahren verarbeitet. Die Snoop-Zyklen werden im Pipeline-Verfahren verarbeitet, um eine Cache-Inkohärenz zu vermeiden. Ein Busmaster kann daher bei der Ausführung aufeinanderfolgender Schreibzyklen mit der vollen Leistung arbeiten. In Speicherstellen mit entsprechenden Cache-Speicherstellen, die in unterschiedlichen Cache- Zeilen liegen, kann geschrieben werden, und solche Cache-Zeilen können unter Anwendung von Snoop-Zyklen, die im Pipeline- Verfahren verarbeitet werden, und die grundsätzlich länger dauern als der Speicher-Schreibzyklus, ungültig gemacht werden.
  • Ein Speichersystem hat einen write-through Cache, auf den mehrere Geräte Zugriff haben. Ein Snoop-Mechanismus enthält eine Logik zur Überwachung der Busmaster-Steuersignale, um festzustellen, ob ein neuer Speicher-Schreibzyklus gestartet wurde, bevor ein aktueller Snoop-Zyklus beendet wurde. Wenn ein neuer Zyklus gestartet wurde, findet ein entsprechender Snoop-Zyklus statt, der mit dem vorherigen Snoop-Zyklus überlappt und im Pipeline-Verfahren verarbeitet wird, so daß der Snoop-Mechanismus nicht hinter die Speicher-Schreibzyklen zurückfällt.
  • Verschiedene bevorzugte Merkmale der Erfindung werden in den Unteransprüchen im Anhang dargelegt.
  • Ein Ausführungsbeispiel der Erfindung soll nachfolgend in Verbindung mit den beiliegenden Zeichnungen beschrieben werden; es zeigt:
  • Fig. 1 ein Blockdiagramm eines Personalcomputers, in dem die Erfindung ausgestaltet wird.
  • Fig. 2 ein ausführlicheres Blockdiagramm eines in Fig. 1 gezeigten Teils;
  • Fig. 3 ein Diagramm einer in Fig. 2 gezeigten Statusmaschine; und
  • Fig. 4 ein Zeitgeber-Diagramm mit Wellenformen, die im Pipeline-Verfahren verarbeitete Snoop-Zyklen erläutern, die von der in Fig. 3 gezeigten Statusmaschine erzeugt wurden.
  • In der nun folgenden Beschreibung wird zunächst ein exemplarisches Datenverarbeitungssystem beschrieben, das die Erfindung enthält, und anschließend Details eines Snoop-Mechanismus, der gemäß der Erfindung konstruiert wurde. Datenverarbeitungssystem Bezugnehmend auf Fig. 1; das Rechnersystem 10 enthält die Systemplatine (Planarplatte) 12 sowie den Prozessorkomplex 14. Der Prozessorkomplex 14 ist über die Prozessorkomplex-Steckverbindung 15 mit der Planarplatte 12 verbunden. Die Planarplatte 12 enthält einen Planarspeicher 16 und einen Ein/Ausgabe (E/A)-Bus 18, der zum Beispiel in MICRO CHANNEL- Rechnerarchitektur ausgeführt sein kann. Der Speicher 16 enthält zwei Speicherbänke 17A und 17B, die einen Zweiweg-Interleave-Speicher bilden. Die Erweiterungsgeräte 19 können über den E/A-Bus 18 an den Rechner 10 angeschlossen werden. Die Planarplatte 12 kann auch ein konventionelles Video-Schaltsystem, ein Zeitgeber-Schaltsystem, ein Tastatur-Steuerungsschaltsystem und ein Interrupt-Schaltsystem enthalten (alle nicht dargestellt), die im Normalbetrieb vom Rechner 10 verwendet werden.
  • Der Prozessorkomplex 14 umfaßt den Prozessorabschnitt 20 und den Basisabschnitt 22. Der Prozessorabschnitt 20 ist an den Basisabschnitt 22 über die Localbus-Steckverbindung 24 angeschlossen. Der Prozessorabschnitt 20 arbeitet mit 50 MHz und der Basisabschnitt 22 mit 40 MHz.
  • Der Prozessorabschnitt 20 umfaßt den Mikroprozessor 30 (beispielsweise von Intel Inc., unter der Handelsbezeichnung 486), das Cache-Steuerungsmodul 32, den Speicher 34 (zum Beispiel einen statischen Direktzugriffsspeicher (SRAM)) und das Frequenz-Steuermodul 35 sowie einen Adreßpuffer 36 und einen Datenpuffer 38. Zwischen dem Mikroprozessor 30, dem Speicher 34 und dem Datenpuffer 38 befindet sich ein Dateninformationspfad. Zwischen dem Mikroprozessor 30, der Cache-Steuerungsschaltung 32 und dem Adreßpuffer 36 befindet sich ein Adresseninformationspfad. Ein Steuerungsinformationspfad ist zwischen dem Mikroprozessor 30, dem Cache-Steuermodul 32 und dem Freguenz-Steuermodul 35 bereitgestellt. Außerdem befinden sich zwischen dem Cache-Steuermodul 32 und dem Speicher 34 ein Adresseninformationspfad und ein Steuerungsinformationspfad. Die Daten-, Adreß- und Steuerungsinformationspfade stellen einen Prozessorbus dar.
  • Der Speicher 34 stellt eine Cache-Funktion der zweiten Ebene bereit, indem er kurzfristig Speicherinformationen aus dem Speicher 16 oder aus einem Speicher, der auf dem Erweiterungsgerät 19 liegt, speichert. Das Cache-Steuermodul 32 enthält den Direktzugriffsspeicher für die Identifizierungskennzeichen (RAM) 37, in dem die Adresse des Speichers 16, zu der die im Speicher 34 gespeicherten Informationen gehören, gespeichert ist.
  • Das Frequenz-Steuermodul 35 synchronisiert den 50-MHz-Prozessorabschnitt mit dem 40-MHz-Basisabschnitt; das Frequenz- Steuermodul 35 steuert außerdem die Puffer 36 und 38. Das Frequenz-Steuermodul 35 bestimmt also, wann Informationen von den Puffern 36 und 38 festgehalten werden, und wann Informationen, die in den Puffern 36 und 38 gespeichert sind, überschrieben werden. Die Puffer 36 und 38 sind so konfiguriert, daß zwei Schreiboperationen vom Speicher 16 gleichzeitig in den Puffern 36 und 38 gespeichert werden können. Die Puffer 36 und 38 sind bidirektional, das heißt, in den Puffern 36 und 38 können Informationen, die vom Prozessorabschnitt 20 bereitgestellt werden, und Informationen, die für den Prozessorabschnitt 20 vorliegen, zwischengespeichert werden. Weil die Puffer 36 und 38 bidirektional sind, kann der Prozessorabschnitt 20 ersetzt oder erweitert werden, während ein Standard-Basisabschnitt 22 erhalten bleibt.
  • Der Basisabschnitt 22 umfaßt den Speicher-Controller 50, den Controller für direkten Speicherzugriff (DMAC) 52, die Schaltung für den zentralen Zuteilungs-Schaltpunkt (CACP), 53, die Bus-Schnittstelleneinheit (BIU) 54 und die Puffer/Fehlerkorrektur-Code (ECC)-Schaltung 56. Der Basisabschnitt 22 umfaßt außerdem die Treiberschaltung 58, den Nurlesespeicher (ROM) 60, die Selbsttestschaltung 62 und die Pufferschaltung 64. Zwischen dem Speicher-Controller 50 und dem Frequenz-Steuermodul 35 des Prozessorabschnitts 20 steht ein Steuerungsinformationspfad zur Verfügung. Auch zwischen folgenden Geräten stehen Steuerungsinformationspfade zur Verfügung: Speicher-Controller 50, DMA-Controller 52 und Bus- Schnittstelleneinheit 54; Speicher-Controller 50 und Treiber 58; Treiber 58 und Speicher 16; Bus-Schnittstelleneinheit 54 und Puffer 64; Puffer 64 und E/A-Bus 18 der Planarplatte 12; und CACP 53 und E/A-Bus 18 der Planarplatte 12. Zwischen dem Speicher-Controller 50, dem ROM 60 und der Selbsttestschaltung 62 sowie dem Adreßpuffer 36 des Prozessorabschnitts 20 steht ein Adresseninformationspfad zur Verfügung. Adresseninformationspfade stehen außerdem zwischen folgenden Einrichtungen zur Verfügung: Speicher-Controller 50, DMA-Controller 52 und Bus-Schnittstelleneinheit 54; Speicher-Controller 50 und Treiber 58; Treiber 58 und Speicher 16; Bus-Schnittstelleneinheit 54 und Puffer 64; und Puffer 64 und E/A-Bus 18 der Planarplatte 12. Ein Dateninformationspfad steht zwischen der Puffer/ECC-Schaltung 56, dem ROM 60 und der Selbsttestschaltung 62 sowie auch dem Datenpuffer 38 des Prozessorabschnitts 20 zur Verfügung. Dateninformationspfade stehen außerdem zur Verfügung zwischen: Puffer/ECC-Schaltung 56, DMA-Controller 52 und Bus-Schnittstelleneinheit 54; Puffer/ECC-Schaltung 56 und Speicher 16; Puffer/ECC-Schaltung 56 und Speicher 17; Bus-Schnittstelleneinheit 54 und Puffer 64; und Puffer 64 sowie E/A-Bus 18 der Planarplatte 12. Die Informationspfade werden nachfolgend auch als "Busse" bezeichnet.
  • Der Speicher-Controller 50 analysiert Adreßinformationen, die er vom Prozessorabschnitt 20 empfängt, um festzustellen, ob diese Informationen zu einer Adresse des Planarspeichers 16 oder zu einer Adresse eines Speichers gehören, der sich auf einem Erweiterungsgerät 19 (das heißt, einem Erweiterungsspeicher) befindet. Gehört die Adresseninformation zu einer Adresse des Speichers 16, leitet der Speicher-Controller 50 einen Planarspeicherzyklus zum Speicher 16 ein. Die Adreßinformation vom Prozessor 30 umfaßt zweiunddreißig Bit, die vom Speicher-Controller in die entsprechenden Reihen- und Spaltenadreßbits für den Zugriff auf den Speicher 16 umgewandelt werden. Während der Planarspeicherzyklus stattfindet, erlaubt der Speicher-Controller 50 entweder dem DMA-Controller 52 oder einem Busmaster-Erweiterungsgerät 19, über den E/A-Bus 18 auf die Informationen zuzugreifen.
  • Wenn die Adreßinformation zu einer Adresse auf dem Erweiterungsspeicher gehört, leitet der Speicher-Controller 50 einen Erweiterungsspeicherzyklus mit dem Erweiterungsspeicher ein. Während eines Erweiterungsspeicherzyklus wird die Adresse, die dem Speicher-Controller 50 bereitgestellt wird, über die Bus-Schnittstelleneinheit 54 dem E/A-Bus 18 zugestellt. Das Erweiterungsgerät, das den Speicher, zu dem die Adresse gehört, enthält, empfängt die Speicheradresse vom E/A-Bus 18. Wenn die Daten aus dem Erweiterungsspeicher abgerufen werden, wird die Dateninformation, die im Erweiterungsspeicher gespeichert ist, dem Prozessorabschnitt 20 über den E/A-Bus 18, die Pufferschaltung 64, die Bus-Schnittstelleneinheit 54, die Puffer/ECC-Schaltung 56 und die Treiber-Schaltung 58 zur Verfügung gestellt. Werden die Daten in den Erweiterungsspeicher geschrieben, wird die Dateninformation dem Erweiterungsspeicher über die Bus-Schnittstelleneinheit 54 und den E/A-Bus 18 zur Verfügung gestellt. Außerdem steuert der DMA-Controller 52 den Austausch von Informationen zwischen dem Speicher 16 und dem Speicher auf einem Erweiterungsgerät 19.
  • Der DMA-Controller 52 stellt dem Prozessorkomplex 14 drei Funktionen bereit. Der DMA-Controller 52 nutzt eine Steuerblockarchitektur eines kleinen Rechner-Subsystems (SCB), um die DMA-Kanäle zu konfigurieren, wodurch die Verwendung einer programmierten E/A zur Konfiguration der DMA-Kanäle umgangen wird. Der DMA-Controller 52 stellt außerdem eine Pufferfunktion bereit, um Übertragungen zwischen langsamen Erweiterungsgeräten und schnellen Speichern zu optimieren. Der DMA- Controller 52 stellt außerdem eine Direktspeicherzugriffs- Funktion mit acht Kanälen, 32-Bit Daten-, Adreß- und Bytetransferzählung bereit. In der DMA-Funktion kann der DMA-Controller 52 zwei unterschiedliche Arbeitsweisen haben. Im ersten Modus arbeitet der DMA-Controller 52 in einem programmierten E/A-Modus, in dem der DMA-Controller 52 funktionell ein E/A-Slave ist. Im zweiten Modus arbeitet der DMA-Controller 52 als DMA-Busmaster, wobei der DMA-Controller 52 für den E/A-Bus 18 die Zuteilungsentscheidungen trifft und diesen steuert. In diesem zweiten Modus nutzt der DMA-Controller 52 eine First-in-first-out (FIFO) -Registerschaltung; bevor die Daten aus einer bestimmten Quelle ihrem Ziel zugeführt werden, durchlaufen sie zunächst die FIFO-Registerschaltung. Dementsprechend wird eine serielle DMA-Operation ausgeführt.
  • Der CACP 53 arbeitet für das Rechnersystem 10 als Zuteiler. Der CACP 53 empfängt sowohl vom DMA-Controller 52 als auch von den Erweiterungsgeräten 19 die Zuteilungs-Steuerungssignale und steuert, indem er Zuteilungs-Steuerungsinformationen bereitstellt, welches Gerät Informationen über den E/A-Bus 18 übertragen kann, und wie lange ein bestimmtes Gerät den E/A- Bus 18 steuern (das heißt besitzen) kann.
  • Die Bus-Schnittstelleneinheit 54 stellt die bidirektionale Schnittstelle zwischen der Architektur des Prozessorkomplexes 14 und der Architektur des E/A-Busses 18 bereit. Die Bus- Schnittstelleneinheit 54 stellt außerdem eine Pufferungsfunktion bereit, um die Schnittstelle zwischen den beiden Architekturen zu optimieren. Die Bus-Schnittstelleneinheit 54 stellt außerdem eine Busdimensionierungsfunktion bereit. Das heißt, die Bus-Schnittstelleneinheit 54 kann Informationen in 32 Bit breiten Segmenten empfangen und die Informationen dem E/A-Bus 18 in kleineren Segmenten bereitstellen, je nach den Anforderungen des Erweiterungsgeräts 19, mit dem der Prozessorkomplex 14 kommuniziert.
  • Die Puffer/ECC-Schaltung 56 stellt einen Datenpfad zwischen dem Prozessorabschnitt 20 und dem Speicher 16, einen Datenpfad zwischen dem Speicher 16 und dem DMA-Controller 52 und dem Bus-Controller 54 bereit. Die Puffer/ECC-Schaltung 56 stellt außerdem einen Datenpfad zwischen dem Prozessorabschnitt 20 und dem DMA-Controller 52 und der Bus-Schnittstellenschaltung 54 bereit. Die Puffer/ECC-Schaltung 56 führt über den Fehlerkorrektur-Code eine Fehlerprüfung durch; außerdem ist die Puffer/ECC-Schaltung 56 in der Lage, mit dem Paritätsspeicher zu arbeiten und diesen in Hinblick auf eine Abwärtskompatibilität mit der Planarplatte 12, die den Paritätsspeicher umfaßt, zu unterstützen.
  • Die Treiberschaltung 58 stellt Steuerungsinformationen und Adreßinformationen vom Speicher-Controller 50 an den Speicher 16 bereit. Die Treiberschaltung 58 treibt diese Informationen, je nach Anzahl der im Speicher 16 verwendeten SIMMs. Das heißt, die Treiberschaltung 58 verändert die Signalintensität der Steuerungs- und Adreßinformation, die dem Speicher 16 zur Verfügung gestellt wird, in Abhängigkeit von der Größe des Speichers 16. Die Größe des Speichers 16 wird bei der Initialisierung des Rechners 10 von der Software bestimmt.
  • Die Pufferschaltung 64 stellt eine Trennung zwischen dem Basisabschnitt 22 und der Planarplatte 12 dar. Die Pufferschaltung 64 nutzt Puffer, die es der Pufferschaltung 64 erlauben, Grenzinformationen zwischen dem E/A-Bus 18 und der Bus- Schnittstelleneinheit 54 in Realzeit zu erfassen; das heißt, die Puffer speichern die Informationen, wie sie an der Steckverbindung 15 erscheinen. Wenn es daher in dem Rechner 10 zu einem Ausfall kommt, kann ein Computer-Fachmann auf die Pufferschaltung 64 zugreifen, um die Information zu ermitteln, die an der Steckverbindung 15 bei Ausfall des Rechners 10 vorhanden war.
  • Die Selbsttestschaltung 62, die an eine Vielzahl von Stellen in dem Basisabschnitt 22 angeschlossen ist, stellt eine Vielzahl von Selbsttestfunktionen bereit. Die Selbsttestschaltung 62 greift auf die Pufferschaltung 64 zu, um festzustellen, ob Fehlerbedingungen vorliegen. Die Selbsttestschaltung 62 prüft beim Einschalten auch die anderen Hauptkomponenten des Basisabschnitts 22, um festzustellen, ob der Rechner 10 einsatzbereit ist.
  • Der Mikroprozessor-Chip 30 hat eine CPU 66 und einen writethrough Cache 68 der ersten Ebene. Dieser Cache hat eine Vielzahl von Speicherstellen, die als Cache-Zeilen angeordnet sind, wobei jede Cache-Zeile 16 Informationsbytes aufnimmt. Wenn die CPU auf eine Stelle im Hauptspeicher zugreift, wird diese Stelle zusammen mit den benachbarten Stellen in eine Zeile der Cache-Speicher 34 oder 38 eingelesen. Der DMA-Controller 52 und die BIU 54 arbeiten als Busmaster und können direkt auf den Speicher 16 zugreifen. Sollte ein Busmaster in eine Speicherstelle im Speicher 16 schreiben, wird außerdem geprüft, ob der in diese Speicherstelle geschriebene Inhalt auch in jedem Cache gespeichert ist. Wenn ja, muß die Cache- Zeile, die diese Speicherstelle enthält, ungültig gemacht werden. Das Ungültigmachen der Cache-Zeile erfolgt über Snoop-Zyklen unter Steuerung eines im Speicher-Controller 50 befindlichen Snoop-Mechanismus.
  • Snoop-Mechanismus
  • Bezugnehmend auf Fig. 2; der Controller 50 empfängt eine Vielzahl von Eingangssignalen und erzeugt eine Vielzahl von Ausgangssignalen; diese Signale werden nachfolgend im einzelnen erläutert und dienen zur Steuerung von Speicher- und Snoop-Zyklen. Der Controller 50 ist zeitlich auf ein CLK-Signal abgestimmt, das von einem Standard-Systemtaktgeber oder Oszillator (nicht dargestellt) empfangen wird. Der Controller 50 umfaßt allgemein eine Snoop-Status-Maschine (SM) 70, eine System-SM 72, die Decodier-Logik 74 und einen Adressentreiber 80. Die Snoop-SM 70 steuert die Snoop-Zyklen und die System-SM 72 steuert die Speicherzugriffe, einschließlich Speicher-Schreibzyklen. Der Speicher-Controller 50 ist über Adreß- und Steuerleitungen an den DMAC 52 und die BIU 54 angeschlossen; hierzu gehören der Adreßbus 76 für den Empfang von SADDR-Signalen, die Steuerleitungen 77 für den Empfang der SADS-, SWR- und SMIO-Signale und die Steuerleitung 78 zum Senden eines SRDY-Signals. Der Bus 76 wird weiter an die Decodier-Logik 74 und den Treiber 80 angeschlossen. Der Treiber 80 ist ein bidirektionaler Treiber. Die Steuerleitungen 77 werden weiter an die beiden Statusmaschinen 70 und 72 angeschlossen, und die Steuerleitung 78 wird an die System- SM 72 angeschlossen. Die SM 72 wird über einen Planarspeicherbus 83, der Leitungen zur Übertragung der RAS-, CAS- und MADDR-Siguale von der SM 72 zum Speicher 16 enthält, an den Speicher angeschlossen.
  • Die System-SM 72 funktioniert allgemein wie folgt. Wenn auf dem Bus 76 eine Systemadresse SADDR empfangen wird, stellt die Decodier-Logik 74 fest, ob die Adresse im Planarspeicher- Cache zwischengespeichert werden kann; wenn ja, erzeugt die Decodier-Logik einen Ausgang, der auf dem Bus 75 in beide Statusmaschinen eingespeist wird. Die System-SM 72 empfängt außerdem den Systemadressen-Strobe, das Schreib-/Lesesignal und die Speicher-E/A-Signale SADS, SWR und SMIO auf den Leitungen 77. Wenn die Kombination dieser Signale eine Speicher- Schreibanforderung an den Planarspeicher 16 definiert, überträgt die Status-SM 72 an den Speicher 16 die zeitlich gemultiplexten Reihen- und Spaltenadressen MADDR, und die Reihen- und Spaltenadressen-Strobes RAS und CAS, um in die adressierte Speicherstelle zu schreiben.
  • Die System-SM 72 sendet ein SRDY-Signal an den Busmaster, wenn Daten angenommen wurden; dieses Signal kann dann dazu verwendet werden, das nächste zu speichernde Datenelement durchzuschalten. Die Signale SADS und SRDY definieren den Beginn und das Ende eines Speicherzyklus.
  • Die Snoop-SM 70 hat Eingänge, die an die Leitungen 75 und 77 angeschlossen sind. Wenn an einen cachefähigen Speicher eine Schreibanforderung geht, stellt die SM 70 fest, ob ein Snoop- Zyklus erforderlich ist. Ist ein Snoop-Zyklus erforderlich, erzeugt die Snoop-SM 70 anschließend auf den Leitungen 82, 86 und 88 die Signale ENABLE, AHOLD und EADS. Als Antwort auf den Empfang eines aktiven ENABLE-Signals schaltet der Treiber 80 eine Snoop-Adresse auf den Bus 84 durch; diese Adresse geht zu den Cache-Speichern im Prozessorabschnitt 20. Die Signale AHOLD und EADS steuern die Ungültigkeitszyklen in den Caches. Das AHOLD-Signal wird als standardmäßige Adressenhalteanforderung an den Mikroprozessor gesendet, die einen Zugriff auf den lokalen Prozessorbus zur Ausführung einer Ungültigmachung zuläßt. EADS ist ein externes Eingangssignal "Adresse gültig", das eine gültige Snoop-Adresse anzeigt, und ein solches Signal bewirkt das Ungültigmachen einer Cache- Zeile.
  • Die in Fig. 2 gezeigten externen Signale des Speicher-Controllers sind Standardsignale und erst die entsprechende Taktung dieser Signale erzeugt im Pipeline-Verfahren verarbeitete Snoop-Zyklen. Das System ist ein store-through Speicher/Cache-System, welches das Ungültigmachen von Busmaster- Schreibzyklen erfordert. Mit den Speicher-Schreibzyklen Schritt zu halten ist für die Snoop-Zyklen dann am schwierigsten, wenn Speicher-Schreiboperationen back-to-back in aufeinanderfolgenden Zyklen vorkommen, und wenn sie an verschiedene Cache-Zeilen mit derselben Reihenadresse gehen. Ein Snoop-Grundzyklus hat aufgrund des Systemtakts und der Cache- Architektur eine vorbestimmte feste Länge. Ein Speicher- Schreibzyklus ist kürzer als der Snoop-Grundzyklus. Der Snoop-Grundzyklus kann verkürzt werden, wenn im Pipeline-Verfahren gearbeitet wird. In dem exemplarischen Ausführungsbeispiel erfordert der Speicher-Schreibzyklus vier Taktzeiten oder einfach "Takte", ein Snoop-Grundzyklus erfordert sieben Takte und der Snoop-Grundzyklus kann im Pipeline-Modus auf vier Takte abgekürzt werden.
  • Bezughehmend auf Fig. 3; die Snoop-SM 70 hat sieben Zustände, die jeweils mit S0-S6 bezeichnet sind. Der Zustand S0 ist ein Ruhezustand, der in einer durch den Pfad 100 bezeichneten Schleife verbleibt, bis ein negatives SADS-Signal von einem Busmaster empfangen wird; SM 70 schaltet daraufhin in den Zustand S1. Im Zustand S1 wird der Decodierlogikausgang verfügbar, es wird festgestellt, ob der aktuelle Zyklus eine Speicher-Schreiboperation in einen cachefähigen Planarspeicher ist, und ob ein entsprechendes Ungültigmachen oder ein Snoop- Zyklus erforderlich ist. Es ist möglich, daß die Adresse an eine cachefähige Stelle im Planarspeicher geht, daß jedoch ein Snoop-Zyklus nicht erforderlich ist, weil in einem vorherigen Snoop-Zyklus bereits die entsprechende Cache-Zeile ungültig gemacht wurde. Wenn kein Snoop-Zyklus erforderlich ist, wird SM 70 von einem Übergang 102 in den Ruhezustand S0 zurückgeschaltet. Wenn ein Snoop-Zyklus erforderlich ist, schaltet SM 70 in den Zustand S2, indem das AHOLD-Signal hochgesteuert oder aktiviert wird. Mit dieser Maßnahme wird der Zugang zu dem lokalen Prozessor-Adreßbus frei und ermöglicht es dem Cache 34 der zweiten Ebene, sich für den Empfang der Snoop-Adresse bereit zu machen. In der besonderen Implementierung sind für das Erreichen eines solchen Vorbereitungszustands zwei Takte erforderlich. Nach S2 finden also zwei Verzögerungszustände S3 und S4 statt, die eine Vorbereitung des Cache der zweiten Ebene ermöglichen.
  • Der Zustand S5 erzeugt das ENABLE-Sigual, wodurch der Treiber 78 veranlaßt wird, auf dem Bus 84 eine Snoop-Adresse abzulegen. Dann wird im Zustand S6 der Adressen-Strobe EADS angetrieben und dieses Signal wird von den Cache-Speichern empfangen und bewirkt, daß die adressierte Cache-Zeile ungültig gemacht wird. Der Zustand S4 überwacht außerdem ein aktives SADS-Signal beziehungsweise sucht nach einem solchen Signal und notiert diese Tatsache, die dann im Zustand S6 genutzt wird. Wird kein aktives SADS-Signal im Zustand S6 erkannt oder notiert, endet ein Snoop-Zyklus und es erfolgt ein Übergang 110, wodurch SM 70 in den Zustand S0 zurückgeschaltet wird. Wird in S4 ein aktives SADS-Signal notiert, erfolgt ein Übergang 104, wodurch SM 70 in den Zustand S3 zurückgeschaltet wird, um einen Pipeline-Snoop-Zyklus auszuführen, der eine Dauer von vier Takten hat. Durch diesen Übergang werden die ersten drei Takte in einem Snoop-Grundzyklus (BSC) ausgeblendet bzw. umgangen, und zwar aus den folgenden Gründen. Zunächst werden die beiden ersten Takte eines BSC verwendet, um die SADDR-Signale zu empfangen und sie in der Decodier- Logik 74 zu verarbeiten, die von der Snoop-SM unabhängig ist. Wenn das SADS-Signal in S4 verfügbar wird, trifft die Decodier-Logik 74 in S5 und S6 ihre Feststellung, die dann anschließend SM 70 zur Verfügung gestellt wird. Da das AHOLD- Signal bereits hochgesteuert ist, kann dann im zweiten Schritt der Zustand S2 ausgeblendet werden.
  • Die obige Erörterung der Verwendung des Übergangs 104 findet auf der Basis eines schnellen Speichers statt, der vier Takte benötigt. Ist der Speicher langsamer und benötigt fünf Takte, tritt das SADS-Signal im Zustand S5 auf und ein Übergang 106 führt vom Zustand S6 in den Zustand S2 zurück. Ist der Speicher noch langsamer und benötigt sechs Takte, erfolgt ein Übergang 108 vom Zustand S6 in den Zustand S1.
  • Bezugnehmend auf Fig. 4; die vom CLK-5ignal definierten Takte werden durchgehend auf der oberen Zeile numeriert und drei aufeinanderfolgende Speicher-Schreibzyklen (MwC) MwC1 -MwC3, die im Verlauf der Takte 1-12 stattfinden, sind dargestellt. Jeder MRC dauert vier Takte. In jedem Speicher-Schreibzyklus wird die Adresse SADDR der Stelle, in die geschrieben werden soll, mit einem Adressen-Strobe-Signal SADS an den Controller S0 und die SMs gesendet. Die System-SM 72 erzeugt dann auf die übliche Weise die Planarspeicheradresse MADDR und die Spalten- und Reihen-Strobes CAS und RAS, um in die adressierten Speicherstellen zu schreiben. Fig. 4 erläutert die Funktionsweise bei höchster Leistung, bei der die Snoop-Zyklen mit aufeinanderfolgenden Speicher-Schreibzyklen unter den oben genannten ungünstigsten Bedingungen Schritt halten können. Am Ende jedes Speicherzyklus meldet SM 72 dem Busmaster das SRDY-Signal zurück, wodurch der Busmaster in die Lage versetzt wird, in eine neue Speicherstelle zu schreiben.
  • Ein Snoop-Grundzyklus (BSC) dauert sieben Takte und die aufeinanderfolgenden im Pipeline-Verfahren verarbeiteten Snoop- Zyklen (PSC) dauern jeweils vier Takte. Im BSC treten die Zustände S1 bis S3 in den Takten 1-3 auf und AHOLD wird in Takt 3 geschaltet, um die Cache-Speicher auf das Ungültigmachen einer Zeile vorzubereiten. Diese Vorbereitung findet während der Takte 4 und 5 statt. Auf den Bus 84 wird eine SNOOP-ADRESSE gesteuert und wird dadurch in Takt 6 gültig; der BSC endet damit, daß in Takt 7 das EADS-Signal übermittelt wird. Da ein SADS-Signal in Takt 5 vorkam, wenn die Snoop-SM im Zustand 54 ist, folgt dann in den Takten 8-11 PSC1; wegen des SADS-5ignals in Takt 12 findet in den Takten 12-15 PSC2 statt. Man beachte, daß die Speicher-Schreibzyklen den Pipeline-Snoop-Zyklen vorangehen und somit ein Snoop-Zyklus, bevor er abgeschlossen ist, feststellen kann, ob ein weiterer Speicher-Schreibzyklus stattfindet, bei dem ein nachfolgender Pipeline-Snoop-Zyklus erforderlich ist.

Claims (11)

1. Ein Speicher-Controller für einen Rechner mit einem Speichersystem, das einen Planarspeicher (16) und einen write-through Cache (68) umfaßt, und Busmaster-Mittel (52, 54), die in aufeinanderfolgenden Speicher-Schräibzyklen eine Vielzahl planarer Schreiboperationen ausführen können, wobei diese Schreiboperationen das Ungültigmachen verschiedener Cache-Zeilen erfordern, wobei der Speicher-Controller an das genannte Speichersystem und die genannten Busmaster-Mittel (52, 54) angeschlossen werden kann, um einen Zugang zu dem genannten planaren Speicher zu ermöglichen, wobei der genannte Speicher-Controller folgendes umfaßt:
einen Snoop-Mechanismus, der in dem ersten der genannten aufeinanderfolgenden Speicherzyklen arbeiten kann, um einen Snoop-Grundzyklus zu bewirken, der eine erste Cache-Zeile ungültig macht, welche einer Stelle in dem Planarspeicher entspricht, in die in dem genannten ersten Speicherzyklus geschrieben wurde, wobei der genannte Snoop-Grundzyklus länger ist, als ein Speicher- Schreibzyklus; dadurch gekennzeichnet, daß der Snoop- Mechanismus folgendes aufweist:
eine Überwachungslogik zur Überwachung der Steuersignale von den genannten Busmaster-Mitteln (52, 54), um festzustellen, ob ein zweiter Speicher-Schreibzyklus gestartet wurde, bevor der genannte Snoop-Grundzyklus beendet ist, und Erzeugen eines Steuersignals, das dieses anzeigt;
und eine Snoop-Steuerlogik, die an die genannte Überwachungslogik angeschlossen ist, zum Einleiten eines Pipeline-Snoop-Zyklus unmittelbar danach, der mit dem genannten Snoop-Grundzyklus im Pipeline-Verfahren abgearbeitet wird, um eine zweite Cache-Zeile in Antwort auf den Empfang des genannten Steuersignals ungültig zu machen, wobei der genannte Pipeline-Snoop-Zyklus genauso lange dauert wie der Speicher-Schreibzyklus.
2. Ein Speicher-Controller nach Anspruch 1 für einen Rechner, bei dem die genannten Busmaster-Mittel (52, 54) am Beginn jedes Speicherzyklus eine Systemadresse SADDR der Speicherstelle im Planarspeicher, in den geschrieben werden soll, übertragen, und ein Strobe-Signal SADS, das anzeigt, daß eine solche Systemadresse gültig ist; wobei in diesem Controller
die genannte Überwachungslogik so angeordnet ist, daß das genannte Steuersigual in Antwort auf das Erkennen des SADS-Signals in dem genannten zweiten Speicherzyklus erzeugt wird.
3. Ein Speicher-Controller nach Anspruch 2, bei dem der genannte Snoop-Mechanismus an die genannten Busmaster- Mittel (52, 54) angeschlossen werden kann und den genannten Snoop-Grundzyklus in Antwort auf den Empfang des SADS-Signals in dem genannten ersten Speicherzyklus einleitet.
4. Ein Speicher-Controller nach Anspruch 3, in dem
die genannte Überwachungslogik und die genannte Snoop- Steuerlogik, in Antwort darauf, daß die genannten Busmaster-Mittel (52, 54) eine Vielzahl aufeinanderfolgender Schreibzyklen in den Planarspeicher einleiten, das SADS-Signal in jedem aufeinanderfolgenden Speicherzyklus in einem Snoop-Zyklus, der dem vorherigen Speicherzyklus entspricht, erkennen können, und eine Vielzahl von Pipeline-Snoop-Zyklen einleiten, mit derselben Geschwindigkeit, wie die genannte Vielzahl von aufeinanderfolgenden Schreibzyklen in den Planarspeicher.
5. Ein Personalcomputer mit einem Speichersystem, das einen Planarspeicher (16) und einen write-through Cache (68) umfaßt, und einen Busmaster (52, 54), der in der Lage ist, in aufeianderfolgenden Speicher-Schreibzyklen eine Vielzahl von planaren Schreiboperationen auszuführen, wobei diese Schreiboperationen das Ungültigmachen verschiedener Cache-Zeilen erfordern, und einen Speicher-Controller nach jedem vorangehenden Anspruch, der an das genannte Speichersystem und den genannten Busmaster angeschlossen ist, um auf den genannten Planarspeicher zuzugreifen, bei dem:
der genannte Busmaster einen Speicher-Schreibzyklus einleiten kann, indem er gleichzeitig dem genannten Speicher-Controller eine Systemadresse SADDR eines Planarspeichers sendet, in den geschrieben werden soll, Bus-Definitionssignale, die eine Speicher-Schreiboperation definieren, und einen Adressen-Strobe, der anzeigt, daß das genannte SADDR-Signal gültig ist;
der genannte Speicher-Controller eine Cache-Zeile in dem genannten Cache ungültig machen kann, indem er eine Snoop-Adresse sendet, die eine solche Cache-Zeile anzeigt, und einen Strobe EADS, um eine solche Cache- Zeile ungültig zu machen;
der genannte Speicher-Controller eine Decodier-Logik (74), eine System-Status-Maschine (72) für den Zugriff auf den genannten Planarspeicher, und eine Snoop- Status-Maschine (70) zum Steuern der Snoop-Zyklen, die Snoop-Grundzyklen enthalten, welche länger als ein Speicher-Schreibzyklus sind, enthält;
die genannte Decodier-Logik (74) an den genannten Busmaster (52, 54) angeschlossen ist, um von diesem das genannte SADDR-Signal zu empfangen, um festzustellen, ob eine solche Adresse an eine Stelle in dem genannten Planarspeicher geht, und um ein erstes Signal an die genannte Snoop-Status-Maschine zu senden, welches anzeigt, daß die genannte Speicherstelle sich in dem genannten Planarspeicher befindet;
wobei die genannte Snoop-Zustands-Maschine (70) eine Vielzahl von Zuständen aufweist, unter diesen folgende:
einen ersten Zustand (SO) zum Empfang des genannten SADS-Signals und des genannten Bus-Definitionssignals, und um aus diesen zu bestimmen, ob ein Snoop-Zyklus erforderlich ist, um eine Cache-Zeile ungültig zu machen, die der genannten Stelle im Planarspeicher entspricht, in die geschrieben wird,
einen zweiten Zustand (55) zum Erzeugen eines ENABLE- Signals und zum Durchschalten des genannten SADDR-Signals auf einen Bus zur Übertragung in den genannten Cache,
und einen dritten Zustand (56) zum Erzeugen des genannten EADS-Signals;
wobei die genannte Snoop-Status-Maschine (70) weiter in Antwort auf den Empfang einer Vielzahl von Anforderungen für aufeinanderfolgende Speicher-Schreibzyklen in Speicherstellen des Planarspeichers, die verschiedenen Cache-Zeilen entsprechen, reagiert, um zunächst einen Snoop-Grundzyklus einzuleiten, in Antwort auf die erste Anforderung der genannten Vielzahl von Anforderungen, und um anschließend eine Vielzahl von Pipeline-Snoop- Zyklen in Antwort auf die Anforderungen nach der genannten ersten Anforderung einzuleiten.
6. Ein Personalcomputer nach Anspruch 5, bei dem die genannte Snoop-Status-Maschine weiter einen vierten Zustand (52) enthält, zum Erzeugen eines Signals AHOLD zum Anfordern eines Adressenhaltezustands, als Vorbereitung auf die Erzeugung der genannten ENABLE- und EADS-Signale.
7. Ein Personalcomputer nach Anspruch 6, bei dem:
der genannte Cache ein Cache der ersten Ebene ist, und das genannte Speichersystem weiter einen Cache der zweiten Ebene enthält, der eine Vorbereitungszeit von einer vorbestimmten Dauer benötigt;
und die genannte Snoop-Status-Maschine (70) weiter einen fünften Zustand (53, 54) umfaßt, der eine Warteperiode bereitstellt, die der genannten Vorbereitungszeit entspricht.
8. Ein Personalcomputer nach Anspruch 7, der so angeordnet ist, daß der genannte Snoop-Grundzyklus dadurch stattfindet, daß nacheinander durch den genannten ersten Zustand (S0), den genannten vierten Zustand (52), den genannten fünften Zustand (53, 54) und den genannten dritten Zustand (56) geschaltet wird.
9. Ein Personalcomputer nach Anspruch 8, der so angeordnet ist, daß der genannten Pipeline-Snoop-Zyklus dadurch stattfindet, daß nacheinander durch den genannten fünf ten Zustand (S3, S4), den genannten zweiten Zustand (S5) und den genannten dritten Zustand (S6) geschaltet wird.
10. Ein Personalcomputer nach Anspruch 9, bei dem:
die Überwachungslogik in dem genannten Pipeline-Snoop- Zyklus arbeitet, um ein neues SADS-Signal in einem neuen Speicher-Schreibzyklus zu erkennen und in Antwort darauf einen Pipeline-Snoop-Zyklus einzuleiten.
11. Ein Personalcomputer nach Anspruch 10, bei dem:
die System-Zustands-Maschine (72) in dem genannten Speicher-Controller so angeordnet ist, daß auf den genannten Planarspeicher (16) in einem Speicher-Schreibzyklus gleichlaufend mit der Operation der genannten Snoop-Status-Maschine (70) zugegriffen wird.
DE69203842T 1991-12-20 1992-12-03 Speichersteuerungsvorrichtung mit Snoop-Mechanismus. Expired - Fee Related DE69203842T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/812,196 US5341487A (en) 1991-12-20 1991-12-20 Personal computer having memory system with write-through cache and pipelined snoop cycles

Publications (2)

Publication Number Publication Date
DE69203842D1 DE69203842D1 (de) 1995-09-07
DE69203842T2 true DE69203842T2 (de) 1996-05-02

Family

ID=25208830

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69203842T Expired - Fee Related DE69203842T2 (de) 1991-12-20 1992-12-03 Speichersteuerungsvorrichtung mit Snoop-Mechanismus.

Country Status (6)

Country Link
US (1) US5341487A (de)
EP (1) EP0549164B1 (de)
JP (1) JPH0727493B2 (de)
BR (1) BR9204884A (de)
CA (1) CA2077048C (de)
DE (1) DE69203842T2 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249481B1 (en) * 1991-10-15 2001-06-19 Kabushiki Kaisha Toshiba Semiconductor memory device
US5966728A (en) * 1992-01-02 1999-10-12 International Business Machines Corp. Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
JP3027843B2 (ja) * 1993-04-23 2000-04-04 株式会社日立製作所 バススヌ−プ方法
JP2675981B2 (ja) * 1993-09-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション スヌープ・プッシュ・オペレーションを回避する方法
US5797026A (en) * 1994-02-28 1998-08-18 Intel Corporation Method and apparatus for self-snooping a bus during a boundary transaction
US5572702A (en) * 1994-02-28 1996-11-05 Intel Corporation Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US5600802A (en) * 1994-03-14 1997-02-04 Apple Computer, Inc. Methods and apparatus for translating incompatible bus transactions
US5485572A (en) * 1994-04-26 1996-01-16 Unisys Corporation Response stack state validation check
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system
US5615334A (en) * 1994-10-07 1997-03-25 Industrial Technology Research Institute Memory reflection system and method for reducing bus utilization and device idle time in the event of faults
US5634073A (en) * 1994-10-14 1997-05-27 Compaq Computer Corporation System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation
US5630094A (en) * 1995-01-20 1997-05-13 Intel Corporation Integrated bus bridge and memory controller that enables data streaming to a shared memory of a computer system using snoop ahead transactions
US5893921A (en) * 1995-02-10 1999-04-13 International Business Machines Corporation Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller
US5704058A (en) * 1995-04-21 1997-12-30 Derrick; John E. Cache bus snoop protocol for optimized multiprocessor computer system
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US5710906A (en) * 1995-07-07 1998-01-20 Opti Inc. Predictive snooping of cache memory for master-initiated accesses
JP3782840B2 (ja) 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
US5652859A (en) * 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5809537A (en) * 1995-12-08 1998-09-15 International Business Machines Corp. Method and system for simultaneous processing of snoop and cache operations
AU3832297A (en) 1996-02-29 1997-09-16 Hitachi Limited Semiconductor memory device having faulty cells
US6748463B1 (en) * 1996-03-13 2004-06-08 Hitachi, Ltd. Information processor with snoop suppressing function, memory controller, and direct memory access processing method
US5809534A (en) * 1996-06-13 1998-09-15 Compaq Computer Corporation Performing a write cycle to memory in a multi-processor system
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches
US5960457A (en) * 1997-05-01 1999-09-28 Advanced Micro Devices, Inc. Cache coherency test system and methodology for testing cache operation in the presence of an external snoop
KR100255510B1 (ko) * 1997-05-09 2000-05-01 김영환 원포트램셀구조로이루어진캐시데이터램
US5900017A (en) * 1997-05-14 1999-05-04 International Business Machines Corporation Snooping a variable number of cache addresses in a multiple processor system by a single snoop request
US6065101A (en) * 1997-06-12 2000-05-16 International Business Machines Corporation Pipelined snooping of multiple L1 cache lines
US5912906A (en) * 1997-06-23 1999-06-15 Sun Microsystems, Inc. Method and apparatus for recovering from correctable ECC errors
US6076147A (en) * 1997-06-24 2000-06-13 Sun Microsystems, Inc. Non-inclusive cache system using pipelined snoop bus
US6061766A (en) * 1997-06-24 2000-05-09 Sun Microsystems, Inc. Non-inclusive cache method using pipelined snoop bus
US6385703B1 (en) * 1998-12-03 2002-05-07 Intel Corporation Speculative request pointer advance for fast back-to-back reads
US6615323B1 (en) 1999-09-02 2003-09-02 Thomas Albert Petersen Optimizing pipelined snoop processing
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6658545B1 (en) * 2000-02-16 2003-12-02 Lucent Technologies Inc. Passing internal bus data external to a completed system
US6728869B1 (en) * 2000-04-21 2004-04-27 Ati International Srl Method and apparatus for memory latency avoidance in a processing system
US7085889B2 (en) * 2002-03-22 2006-08-01 Intel Corporation Use of a context identifier in a cache memory
US7080198B1 (en) * 2002-07-31 2006-07-18 Adaptec, Inc. Method for snooping RAID 1 write transactions by a storage device
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
JP5218228B2 (ja) * 2008-04-23 2013-06-26 新東工業株式会社 搬送装置及びブラスト加工装置
KR102490104B1 (ko) 2017-10-30 2023-01-19 삼성전자주식회사 데이터 보호를 사용하는 인-밴드 메모리에 액세스하기 위한 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
US4638431A (en) * 1984-09-17 1987-01-20 Nec Corporation Data processing system for vector processing having a cache invalidation control unit
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5193170A (en) * 1990-10-26 1993-03-09 International Business Machines Corporation Methods and apparatus for maintaining cache integrity whenever a cpu write to rom operation is performed with rom mapped to ram

Also Published As

Publication number Publication date
CA2077048A1 (en) 1993-06-21
US5341487A (en) 1994-08-23
JPH0727493B2 (ja) 1995-03-29
DE69203842D1 (de) 1995-09-07
CA2077048C (en) 1996-10-22
EP0549164B1 (de) 1995-08-02
BR9204884A (pt) 1993-06-22
EP0549164A1 (de) 1993-06-30
JPH0628254A (ja) 1994-02-04

Similar Documents

Publication Publication Date Title
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69319763T2 (de) Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
DE69324926T2 (de) Doppelte pufferungspeicherung zwischen dem speicherbus und dem expansionsbus eines rechnersystems
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE3855031T2 (de) Kopiesystem mit "Hot-standby"-Speicher
DE68923403T2 (de) Verfahren und Anordnung zur Adressierung eines Seitenmodus-Speichers in einem Computersystem.
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE69029173T2 (de) Mikroprozessor
DE69020220T2 (de) Direktspeicherzugriff zwischen unterschiedlichen Bussystemen mit Cachespeicherübereinstimmung.
DE69323790T2 (de) Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE69127111T2 (de) Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher
DE3887324T2 (de) Speicheranordnung.
DE19882853B3 (de) Verfahren und Steuereinrichtung zum automatischen Korrigieren von in einem Speichersubsystem erfassten Fehlern und Computersystem, das eine solche Steuereinrichtung aufweist
DE68902193T2 (de) Datenspeicheranordnung.
DE69432314T2 (de) Cachespeicher mit aufgeteiltem pegel
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE69627950T2 (de) Fifo-Puffer mit gesperrtem Austausch
DE69031658T2 (de) Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz
DE69527383T2 (de) Virtuelle Speicheranordnung
DE69614779T2 (de) Vorrichtung zum Überschreiben des Cache-Speicherinhalts
DE3852695T2 (de) Multiprozessorsystem mit mehreren Speichern.
DE4218003A1 (de) Sekundaeres cache-speichersystem

Legal Events

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