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
Links
- 230000015654 memory Effects 0.000 title claims description 195
- 230000007246 mechanism Effects 0.000 title claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims 1
- 230000002045 lasting effect Effects 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 40
- 230000006870 function Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 8
- 230000007704 transition Effects 0.000 description 7
- 240000007320 Pinus strobus Species 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 101100465393 Homo sapiens PSMA1 gene Proteins 0.000 description 1
- 101001076732 Homo sapiens RNA-binding protein 27 Proteins 0.000 description 1
- 102100036042 Proteasome subunit alpha type-1 Human genes 0.000 description 1
- 102100025873 RNA-binding protein 27 Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache 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.
- 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.
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)
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)
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 |
-
1991
- 1991-12-20 US US07/812,196 patent/US5341487A/en not_active Expired - Fee Related
-
1992
- 1992-08-27 CA CA002077048A patent/CA2077048C/en not_active Expired - Fee Related
- 1992-10-29 JP JP4291228A patent/JPH0727493B2/ja not_active Expired - Lifetime
- 1992-12-03 EP EP92311061A patent/EP0549164B1/de not_active Expired - Lifetime
- 1992-12-03 DE DE69203842T patent/DE69203842T2/de not_active Expired - Fee Related
- 1992-12-07 BR BR9204884A patent/BR9204884A/pt not_active Application Discontinuation
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 |