DE2226382A1 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- Publication number
- DE2226382A1 DE2226382A1 DE2226382A DE2226382A DE2226382A1 DE 2226382 A1 DE2226382 A1 DE 2226382A1 DE 2226382 A DE2226382 A DE 2226382A DE 2226382 A DE2226382 A DE 2226382A DE 2226382 A1 DE2226382 A1 DE 2226382A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- main memory
- control
- address register
- 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.)
- Granted
Links
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
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
Description
Böblingen, 25. Mai 1972
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtl. Aktenzeichen: Neuanmeldung
Aktenzeichen der Anmelderin: Docket WA 971 008
Die Erfindung betrifft eine Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern und Steuereinheiten
sowie mit einem gemeinsamen Hauptspeicher und einem Verzeichnis zur Speicherung von Angaben über einen Pufferspeicher,
in dem eine Kopie eines bestimmten Datenblocks gespeichert ist.
Eine solche Datenverarbeitungsanlage ist in der US-Patentschrift 3 581 291 beschrieben. Die von den einzelnen Prozessoren gebrauchten
Informationen sind im Hauptspeicher gespeichert und können außerdem zur Erzielung eines raschen Zugriffs in dem zu dem betreffenden
Prozessor gehörigen Pufferspeicher gespeichert sein. Wenn der Prozessor neue Daten anfordert, wird erst der Pufferspeicher
überprüft, um festzustellen, ob die gewünschten Daten im Pufferspeicher vorhanden sind. Wenn das der Fall ist/ werden
diese Daten vom Pufferspeicher zum Prozessor übertragen. Wenn die Daten nicht im Pufferspeicher vorhanden sind, werden diese Daten
vom Hauptspeicher in den betreffenden Pufferspeicher übertragen.
In einem Multiprozessorsystem, in dem also Zugriff zu bestimmten
Daten von mehreren Prozessoren aus erfolgen kann, ergibt sich ein Gültigkeitsproblem der Daten. Dasselbe Problem tritt auch
auf, wenn in einem Prozessor gleichzeitig mehrere Instruktions-
309811/0971
reihen verarbeitet werden, welche alle Zugriff zum gemeinsamen Pufferspeicher haben. Es muß dann verhindert werden, daß ein
Zugriff zu veralteten Daten erfolgt, also zu Daten, welche inzwischen von von einem anderen Benutzer modifiziert worden waren.
Es soll also erreicht werden, daß nur die neueste Version einer bestimmten Information den Benutzern zur Verfügung steht.
Man kann hierzu zu den Daten ein Gültigkeitsbit speichern, wobei die Daten zusammen mit dem Gültigkeitsbit im Pufferspeicher gespeichert
werden. Falls die Daten in irgendeinem Pufferspeicher modifiziert werden, wird ein Schreibzyklus im Hauptspeicher ausgelöst
und die betreffenden Daten im Hauptspeicher auf den neuesten Stand gebracht. Gleichzeitig müssen die Gültigkeitsbits in
allen anderen Pufferspeichern, in denen also noch die veralteten Daten gespeichert sind, auf ungültig gesetzt werden. Hierdurch
kann den einzelnen Prozessoren ersichtlich gemacht werden, daß die betreffenden Daten nicht mehr dem neuesten Stand entsprechen
und daß ein Zugriff zum Hauptspeicher nötig ist, falls diese Daten angefordert werden. Auf diese Weise wird wohl erzielt,
daß jeder Prozessor nur Zugriff zu der neuesten Version der Daten hat, doch ist es hierbei notwendig, daß die neueste
Datenversion immer im Hauptspeicher abgespeichert wird, und daß alle anderen Prozessoren von einer Modifikation der Daten benachrichtigt
werden müssen, obwohl sie vielleicht gar nicht eine Ergänzung dieser Daten auf den neuesten Stand benötigen.
Die oben beschriebene Methode hat sich in der Praxis als schwierig durchführbar erwiesen und ihre Durchführung verursacht relativ
große Kosten und vermindert die Arbeitsgeschwindigkeit der Datenverarbeitungsanlage.
Es ist auch möglich, im Hauptspeicher Indikatorbits zu speichern, welche einen Hinweis darüber enthalten, in welchem Pufferspeicher
eine Kopie der Daten oder eines Teiles davon gespeichert ist. Jedesmal wenn die Daten vom Hauptspeicher ausgelesen wer-
oder in den Pufferspeicher eingeschrieben werden, werden die
WA971OO8 309811/0971
Indikatorbits für diesen Pufferspeicher gesetzt. Ebenso wird jedesmal, wenn eine Schreiboperation im Hauptspeicher durchgeführt
wird, der Inhalt der entsprechenden Indikatorbits überprüft und die Information in dem Pufferspeicher für ungültig
erklärt, für den die Indikatorbits gesetzt sind. Diese Methode verlangt jedoch, daß die Indikatorbits für den Status jeder
Teildatenmenge im Hauptspeicher gespeichert werden müssen und daß Löschungsoperationen in den anderen Prozessoren durchgeführt
werden müssen, wenn Daten aus dem Hauptspeicher in einen Pufferspeicher übertragen werden. Diese Methode hat sich auch als zu
kompliziert erwiesen und vermindert außerdem die Rechnergeschwindigkeit
dadurch, daß jedesmal eine überprüfung der Gültigkeit im Hauptspeicher erfolgen muß, wenn Informationen vom Hauptspeicher
ausgelesen werden.
Der Erfindung liegt daher die Aufgabe zugrunde, eine einfache Möglichkeit zu schaffen, modifizierte Daten in einem Pufferspeicher
zu speichern und Verbindungseinrichtungen anzugeben, welche es gestatten, diese modifizierten Daten allen Prozessoren zugänglich
zu machen.
Für eine Datenverarbeitungsanlage der oben beschriebenen Art wird diese Aufgabe dadurch gelöst, daß in jeder Steuereinheit
ein Inter-Steuerungs-Adressenregister zur Aufnahme von Hauptspeicheranforderungen
des zugehörigen Prozessors und ein damit verbundenes Steueradressenregister, welches die Anforderungsinformation
zu einem Aussende-Adressenregister in jedem Pufferspeicher überträgt, vorgesehen ist, derart, daß, wenn die
gewünschten Daten in modifizierter Form in irgendeinem Pufferspeicher
vorhanden sind, eine Hauptspeicherabrufanforderung in
eine Einspeicheroperation dieser modifizierten Daten umgewandelt wird und zugleich die modifizierten Daten zum anfordernden Prozessor
übertragen werden.
Mit der Erfindung wird der Vorteil erzielt, daß eine modifizierte Version von Daten in einem Pufferspeicher abgespeichert wer-
3098 11/0971
WA 971 008
den kann und daß jeder Benutzer Zugriff zu diesen modifizierten Daten in einem einzigen Hauptspeicherzyklus erhalten kann, wobei
in diesem Zyklus auch die veralteten Daten im Hauptspeicher ergänzt werden. Auf diese Art wird die Hauptspeicher-Zugriffszeit
wesentlich verringert.
Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen
zu entnehmen.
Ein Ausführungsbeispiel der Erfindung soll nun anhand der Figuren näher beschrieben werden. Es zeigen:
Fig. 1 ein Blockschema einer Datenverarbeitungsanlage, Fig. 2 ein Blockschema einer Pufferspeichereinrichtung,
Fig. 3 ein im Verzeichnis der Pufferspeichereinrichtung verwendetes Datenformat,
Fig. 4 ein Blockschema einer Einrichtung in einer
Steuereinheit zur Prioritätsbestimmung,
Fig. 5 eine Einrichtung zur Durchführung von Übertragungsoperationen
zwischen den Steuereinheiten,
Fig. 6 eine Einrichtung in der Steuereinheit zur Aus-
sendungs-Steuerung.
In Fig. 1 ist ein Multiprozessorsystem gezeigt, in dem jeder Prozessor einen eigenen Pufferspeicher 2 aufweist. Jeder dieser
Prozessoren 1 ist über eine Sammelleitung 3 mit einer Steuereinheit 6 verbunden. Die Steuereinheiten 6 steuern den Zugriff und
deren Priorität bei Anforderungen zum Hauptspeicher 9. In jeder Steuereinheit 6 sind ferner Einrichtungen vorhanden, die eine
Verbindung mit den Steuereinheiten der anderen Prozessoren gestatten.
Außerdem kann mit jeder Steuereinheit 6 ein Eingangs-/
3098 1 1 / Π97 1
WA 971 008
Ausgangskanal 5 über eine Sairanelleitung 4 verbunden sein. Die
Steuereinheiten sind untereinander über eine Sammelleitung 7 verbunden. Außerdem ist jede Steuereinheit mit dem Hauptspeicher
9 verbunden. Die in Fig. 1 dargestellten Prozessoren können sowohl einfacher Natur sein als auch geeignet sein, eine Vielzahl von
Instruktionsreihen gleichzeitig auszuführen, wobei alle diese Instruktxonsreihen Zugriffe zum Pufferspeicher 2 durchführen.
Der in Fig. 1 gezeigte Pufferspeicher 2 ist in Fig. 2 genauer dargestellt. Der Pufferspeicher soll eine raschere Arbeitsweise
des mit ihm verbundenen Prozessors gestatten, indem Zugriffe zum Pufferspeicher 2 rascher durchgeführt werden können als zum Hauptspeicher
9.
Der Pufferspeicher 2 erfüllt hauptsächlich Speicherzwecke. Er speichert Kopien der neuesten Daten, welche kürzlich verwendet
wurden und liefert diese Daten an den Prozessor 1. Ferner dient er zur Abspeicherung von ergänzten Speicherblöcken und enthält
Tabellen über den Status und die Verfügbarkeit von Daten. Die einzelnen Pufferspeicher 2 stehen miteinander über Aussende-Einrichtungen
in jedem Pufferspeicher in Verbindung. Wie aus Fig. 2 ersichtlich ist, enthält jeder Pufferspeicher 2 als wichtigste
Einheiten einen primären Speichermodul, auch Arbeitsspeicher 200 genannt, und ein Verzeichnis 204.
Im Prinzip kann der Pufferspeicher 2 verschiedene Organisationen aufweisen. Im vorliegenden Ausführungsbeispiel enthält der Pufferspeicher
vier Grundspeichermoduln (BSMs) zu je 8192 Bits, welche im Arbeitsspeicher 200 untergebracht sind. Jeder Grundspeichermodul
ist in linke und in rechte Segmente sowie in 512 Teilbereiche unterteilt. Jeder Teilbereich speichert 16 Bytes,
und zwar 8 in einem linken und 8 in einem rechten Segment des Speichers 200. Die Teilbereiche stellen eine direkte Abbildung
971 008 309811/0971
zwischen Pufferspeicher 2 und Hauptspeicher 9 dar. Ein Block im Hauptspeicher kann in einem der beiden Blocksegmente für diesen
Teilbereich im Arbeitsspeicher 200 gespeichert sein. Dieses Abbildungsprinzip wird "assoziativer Zweiwegesatz" genannt. Die
beschriebene Zuordnung von Speicherbereichen im Hauptspeicher und in den Pufferspeichern kann natürlich auch durch andere Abbildungsformen
ersetzt werden.
Nach dem vorliegenden Ausführungsbeispiel wird eine Systemadresse verwendet, in der die Bits 8 bis 31 die folgende Bedeutung haben:
Bits 8 bis 26 definieren den Teilbereich, Bits 27 und 28 definieren den Grundspeichermodul (BSM) und
Bits 29 bis 31 definieren das gesuchte Byte.
Das gesuchte Segment wird gefunden, indem die Bits 8 bis 17 der Adresse mit dem Inhalt des Verzeichnisses 204 verglichen werden,
wobei dieses Verzeichnis auf ähnliche Art organisiert ist wie der Arbeitsspeicher 200. Der Speicher 200 kann nur durch reale
Adressen adressiert werden. Logische Adressen müssen daher zuerst übersetzt werden. Diese Übersetzung kann auf verschiedene Art
erfolgen und ist für ein Verständnis der vorliegenden Erfindung nicht wesentlich.
Im Speicher 200 werden üblicherweise die Daten gespeichert, welche
im Moment von dem zugehörigen Prozessor gebraucht werden. Wie bereits erwähnt, kann der Pufferspeicher 2 Daten enthalten, welche
für verschiedene Instruktionsreihen von Bedeutung sind. Diese Instruktionsreihen verwenden dabei gemeinsam die Verarbeitungseinrichtungen des Prozessors.
Das Verzeichnis 204 stellt ein Inhaltsverzeichnis dar, welches die im Speicher 200 gespeicherten Daten identifiziert und klassifiziert.
Im Verzeichnis 204 wird die Adresse jedes Blocks gespeichert,
309811/0971
WA 971 008
·» *7 mm
welcher im Speicher 200 gespeichert ist, und das Verzeichnis 204 wird bei jedem Zugriff zum Speicher 200 abgesucht. In manchen
Fällen kann es nützlich sein, anstelle eines einzigen Verzeichnisses deren zwei zu haben, und zwar eines für Vergleiche beim
Einspeichern und bei Aussende-Operationen zu anderen Prozessoren und ein zweites für Vergleiche bei Ausleseoperationen. Diese
Aufteilung des Verzeichnisses 204 in zwei Teilverzeichnisse kann besonders nützlich sein für Prozessoren, welche mehrere Instruktionsreihen
zugleich ausführen. In diesem Falle können dann nämlich mehrere Vergleiche zugleich durchgeführt werden.
Die Einteilung des Verzeichnisses 204 gleicht der Einteilung des Speichers 200. Im Verzeichis 204 wird ein 16-Bit Wort für jeden
Block gespeichert, welcher sich gerade im Speicher 200 befindet. Die Teilbereichs-Adressenbits des Verzeichnisses 204 sind die
gleichen wie für den Speicher 200. Diese Bits wurden oben näher beschrieben.
In Fig. 3 ist eine 16-Bit Eintragung im Verzeichnis 204 gezeigt. Eine solche Eintragung enthält die folgenden Felder:
1. 10 Bits für den Block-Identifizierer 30, welche den Bits 8-17
der Systemadresse entsprechen und den Hauptspeicherblock identifizieren, welcher sich im Arbeitsspeicher 200 auf der betreffenden
Stelle abgespeichert befindet.
2. Ein modifiziertes Bit 31, welches anzeigt, daß der entsprechende
Block durch einen Programmzugriff geändert worden war.
3. Ein Bit 32, welches sicherstellt, daß dieser Block nicht ersetzt
wird.
4. Ein RC-Bit 33, welches dazu verwendet wird, ein Segment anzugeben,
welches ersetzt werden soll, wenn bei einer Vergleichssuchoperation keine Übereinstimmung im Verzeichnis
204 gefunden wurde.
5. Ein Gültigkeitsbit 34, welches anzeigt, daß ein Hauptspeicherblock
im Speicher 200 vorhanden ist.
6. Zwei nicht verwendete Bits 35.
3 0 9 8 11/0-971
WA 971 008
Das modifizierte Bit 31 und das Gültigkeitsbit 34 stellen sicher, daß nur eine einzige gültige modifizierte Form von Daten in einem
der Pufferspeicher 2 abgespeichert sein kann.
In Fig. 2 ist das Adressenregister 203 des Prozessors gezeigt,
welches Adressen und Operationsanforderungen vom Prozessor 1 über die Sammelleitung 202 aufnimmt. Dieses Register ist mit dem
Verzeichnis 204 und dem Speicher 200 verbunden, um Informationen in diese Speicher einspeichern zu können und um nachfolgend die
notwendigen Vergleichsoperationen durchführen zu können. Mit dem Speicher 200 und dem Verzeichnis 204 ist ferner ein Aussende-Adressenregister
206 verbunden, welches Adressen und Operationsinformationen von der zugehörigen Steuereinheit 6 während einer
Aussendoperation über die Sammelleitung 3 empfängt. Das Ausgangsregister 205 des Verzeichnisses 204 dient zur Aufnahme von Daten
vom Verzeichnis 204 nach einer Vergleichsoperation. Ein Decodierer 211 decodiert den Status von Daten im Speicher 200, d.h. er ,
bestimmt, ob diese Daten gültig sind und ob sie modifiziert wurden. Zum Speicher 200 ist ein Ausgangsregister 201 vorgesehen,
um die vom Speicher 200 ausgelesenen Daten aufzunehmen. Ein "Steuereinheitdaten-EIN-Register" 221 ist mit dem Speicher 200
verbunden und dient zur Aufnahme von Daten von der Steuereinheit 6. über die Sammelleitung 22 können Daten von der Steuereinheit
6, welche im Speicher 200 gespeichert werden, zugleich zum Prozessor 1 übertragen werden.
Die Steuereinheit 6 stellt die Schnittstelle zwischen dem Prozessor
1 und dem Hauptspeicher 9 dar und ermöglicht auch die Verbindung mit den anderen Prozessoren 1. Ferner stellen die Steuereinheiten
6 auch die Schnittstelle zwischen den Eingangs-/Ausgangseinheiten 5 und dem Hauptspeicher 9 dar und dienen zur
Steuerung und zur Verbindung zwischen den verschiedenen Teilen des Multiprozessorsystems. Die Funktionen, welche von der Steuereinheit
6 erfüllt werden, können in drei Kategorien unterge-
WA97JOO8 30981 1/0971
bracht werden:
1. Verarbeitung von Anforderungen,
2. Datenübertragung zum Hauptspeicher 9 und
3. Datenübertragung vom Hauptspeicher 9.
Die Steuereinheit 6 steuert die zeitgeteilte Vielfachausnutzung des Hauptspeichers 9 bezüglich der einzelnen Prozessoren 1 und
auch bezüglich eines einzelnen Prozessors 1. Die Steuereinheit löst auch Prioritätsprobleme und Konflikte, welche durch gleichzeitige
Hauptspeicheranforderungen 9 entstehen. Ferner besorgen die Steuereinheiten 6 die Auswahl und Adressierung des Hauptspeichers
9 und verändern nach Bedarf die Konfiguration der einzelnen Einheiten des Multiprozessorsystems.
Aus Fig. 4 ist ersichtlich, wie die einzelnen Steuereinheiten Prioritätskonflikte unter den Steuereinheiten lösen. Eine Anforderung
zum Hauptspeicher 9 gelangt vom Prozessor über die Sammelleitung 3 zum Register 61 und von den zugehörigen Eingangs-/Ausgangseinheiten
5 über die Sammelleitung 4 zum Register 69. Jede Anforderung gibt die Speicherstelle im Hauptspeicher 9 an sowie
die auszuführende Operation. Diese Information wird im Adressendecoder
60 decodiert und mit den Informationen in einem Verzeichnis 62 verglichen. Das Verzeichnis 62 gibt den Belegungszustand
der einzelnen Speicherstellen an. Auf diese Art wird erreicht, daß nur Anforderungen zu solchen Speicherstellen durchgeführt
werden, welche im Moment frei zugänglich sind. Diese Überprüfung auf Belegtsein der einzelnen Speicherstellen und die Adressendecodierung
kann auch in den Eingangs-/Ausgangseinheiten selbst durchgeführt werden, so daß eine Ausführung dieser Funktionen
in der Steuereinheit nicht notwendig ist, wie durch die gestrichelte Leitung 67 angedeutet ist. Wenn die empfangene Adresse sich
auf eine frei zugängliche Speicherstelle bezieht, wird die Anforderung
zur Überprüfung bezüglich anderer Prioritäten weitergeleitet.
309811/0971
Die Priorität zwischen den Prozessoren 1 und ihren Eingangs-/ Ausgangseinheiten 5 sind in einer "Intra-Steuerung-Prioritäts-
und Auswahleinheit" 64 festgelegt. Wenn in einem Prozessor 1 zugleich mehrere Instruktionsreihen ablaufen, muß auch eine
Priorität zwischen den verschiedenen Instruktionsreihen durch die Auswahleinheit 64 gelöst werden sowie auch zwischen den verschiedenen
Eingangs-/Ausgangseinheiten 5. Wenn eine endgültige Auswahl einer Anforderung getroffen wird, wird die dazugehörige
Adreßinformation in das "Inter-Steuerungs-Adressenregister" 66
geladen. Die Information im Adressenregister 66 1st auch allen anderen Steuereinheiten 6 über die Sammelleitungen 7 zwischen
den einzelnen Steuereinheiten verfügbar sowie auch dem Steuer-Speicheradressenregister
100, welches unten näher beschrieben wird.
Fig. 5 zeigt wie ausgewählte Anforderungs-Adreßinformationen zu
den einzelnen Steuereinheiten 6 in einer Anordnung, wie sie in Fig. 1 gezeigt ist, übertragen werden. In Fig. 5 sind drei Steuereinheiten
6A, 6B und 6C gezeigt. Für den Austausch von Steuerinformationen zwischen den einzelnen Steuereinheiten ist es notwendig,
den Funktionsablauf der einzelnen Steuereinheiten untereinander zu synchronisieren, um sicherzustellen, daß die Inter-Steuerungs-Prioritätsauswahlresultate,
welche oben beschrieben wurden, allen Steuereinheiten 6 über die Sammelleitung 7 gleichzeitig
verfügbar gemacht werden können, obwohl diese Resultate in jeder Steuereinheit getrennt entwickelt wurden. Die in das
Inter-Steuerungs-Adressenregister 66 geladene Information ist also sowohl der Inter-Steuerungs-Auswahl in der eigenen Steuereinheit
6 als auch allen anderen Steuereinheiten 6 verfügbar.
In Fig. 5 sind auch die Einrichtungen gezeigt, welche dazu verwendet
werden, zu bestimmen, welche Steuereinheit 6 Priorität für ihre Zugriffsanforderung zum Hauptspeicher 9 erhält. Die
Resultate der Inter-Steuerungs-Prioritätsauswahl, welche oben
beschrieben wurden, werden gleichzeitig den einzelnen Priori-
WA 971 008 3098 1 1/0971
tätseinheiten 70 aller drei Steuerungseinheiten zugeleitet. Die Daten werden vom Inter-Steuerungs-Adressenregister 66 zu jeder
Steuereinheit 6 über die Sammelleitung 7 übertragen und da in die Inter-Steuerungs-Prioritätseinheit 70 in den anderen
Steuereinheiten 6 geladen. Die Priorität unter den drei Anforderungen wird auf ähnliche Weise erzielt wie für das InterSteuereinheit-Prioritätssystem,
welches oben beschrieben wurde. Z. B. kann die höchste Priorität den Eingangs-/Ausgangsanforderungen
gegeben werden und die nächstniedrigere Priorität den Prozessoren. Wenn zwischen den drei Steuereinheiten ein Prioritätskonflikt
besteht, wenn also in allen drei Steuereinheiten eine Prozessoranforderung gespeichert ist, kann der Prioritätskonflikt durch Vergabe von bestimmten Prioritäten an die einzelnen
Prozessoren gelöst werden.
Wenn von der Inter-Steuerungs-Prioritätseinheit 70 eine Auswahl
getroffen wurde, bringt die Steuereinheit, von der die ausgewählte
Anforderung stammt, den Inhalt ihres Inter-Steuerungs-Adressenregisters
66 in ihr Steueradressenregister 72. Gleichzeitig übertragen die anderen beiden Steuereinheiten den Inhalt des ausgewählten
Inter-Steuerungs-Adressenregister 66 über die InterSteuereinheiten-Sammelleitung
7. Nach Beendigung der ausgewählten Funktion sind die Inhalte aller drei Steueradressenregister 72
identisch und verfügbar zur Bestimmung der Notwendigkeit, diese Information zu den mit der betreffenden Steuereinheit 6 verbundenen
Prozessoren auszusenden. Zusätzlich wird der Inhalt des ausgewählten Inter-Steuerungs-Adressenregister 66 in das betreffende
Steuer-Speicheradressenregister 100 geladen und wird so verfügbar zur Adressierung des Hauptspeichers.
Aus Fig. 5 ist auch ersichtlich, wie die Schnittstellenfunktion für eine Hauptspeicheranforderung ausgeführt wird. Nachdem die
Inter-Steuerungs-Prioritätsauswahl erfolgt ist, wird der Inhalt
des Inter-Steuerungs-Adressenregisters 66 in das Steuer-Speicheradressenregister
100 und in das Speicherfolgeregister 82 gebracht. Das Speicherfolgeregister 82 empfängt den Teil der Adressenin-
WA 971 008 309811/0P71
formationen, welcher zur Auswahl des Speicherverteilungselementes
im Hauptspeicher 9 dient. Das Speicherfolgeregister 82 und das Steuer-Speicheradressenregister 100 sind mit dem Hauptspeicher
9 über eine Sammelleitung 8 verbunden und liefern dem Hauptspeicher die Information, welche zur Durchführung eines Hauptspeicherzugriffes
notwendig ist.
Fig. 6 zeigt die Funktionsweise der Aussendesteuerung in jeder Steuereinheit 6. Wie oben beschrieben wurde, enthält nach Beendigung
der Auswahlfunktion das Steueradressenregister 72 die
Adresse und Angabe der Operation der Daten im Hauptspeicher 9. Das Konfigurationssteuerregister 90 liefert eine voreingestellte
Information, welche den Bereich innerhalb des Hauptspeichers 9 definiert, welcher von dem Prozessor 1 und den Eingangs-/Ausgangseinheiten
5, welche mit der betreffenden Steuereinheit 6 verbunden sind, adressiert werden darf. Der Vergleicher 91 gestattet einen Vergleich des Inhaltes des Steueradressenregisters
72 mit der im Konfigurationssteuerregister 90 gespeicherten Information. Dieser Vergleich wird vor der Aussendeoperation durchgeführt,
um zu bestimmen, ob die gewünschte Adresse sich im Pufferspeicher 2, welcher mit der betreffenden Steuereinheit 6
verbunden ist, befinden kann. Wenn sich die gewünschte Hauptspeicheradresse nicht innerhalb des Bereiches befindet, welcher
durch den Stand des Konfigurationssteuerregisters 90 bestimmt ist, ist es nicht notwendig, die Adresse zum Pufferspeicher 2
auszusenden, da sich diese Adresse nicht im Pufferspeicher 2 befinden kann, weil der betreffende Prozessor 1 nicht Zugriff
zu diesem bestimmten Bereich im Hauptspeicher 9 hat. Die beschriebene Einrichtung kann natürlich auch ohne ein Konfigurationssteuerregister
90 arbeiten. Ohne das Register und ohne den Vergleicher 91 wäre es nur notwendig, alle Adressen von
allen Steuereinheiten 6 auszusenden. Für den Fall, daß ein bestimmter Prozessor 1 nicht Zugriff haben darf zum gewün -:hten
Bereich im Hauptspeicher, würde das nur bedeuten, daß für diese Adressenaussendung nicht die Möglichkeit besteht, daß sich die
gewünschte Information im Pufferspeicher 2 befindet.
WA971008 309811/0971
Um festzuhalten, daß sich eine gültige modifizierte Datenversion im Pufferspeicher 2 befindet, daß also die Adressenaussendung
einen positiven Vergleich herbeigeführt hat, ist eine Aussendeverriegelungsschaltung
92 in der Steuereinheit 6 vorgesehen. Hierdurch wird auch ein Mittel dafür geschaffen, den Hauptspeicherzyklus
in einen Schreibezyklus umzuwandeln. Die Verriegelungsschaltung 92 ist über die Sammelleitung 3 mit dem Decodierer
211 im Pufferspeicher 2 verbunden und wird gesetzt, wenn eine Aussendeoperation sich auf eine in einem Arbeitsspeicher 200
befindliche Blockadresse bezieht.
Das Steuereinheit-Datenregister 94 nimmt die vom Pufferspeicher 2 über die Sammelleitung 3 ausgelesenen Daten auf. Die Aussendeverriegelungsschaltung
92 und das Steuereinheit-Datenregister 94 sind mit dem Hauptspeicher 9 über die Sammelleitung 8 verbunden.
Das Datenausgangsregister 96 wird dazu verwendet, die vom Hauptspeicher 9 über die Sammelleitung 8 ausgelesenen Daten aufzunehmen
und ist mit dem Prozessor 1 über die Sammelleitung 3 verbunden .
Die Arbeitsweise des Ausführungsbeispiels der vorliegenden Erfindung soll nunmehr beschrieben werden. Bezugnehmend auf
Fig. 2 ist ersichtlich, daß eine Prozessoranforderung vom Prozessoradressenregister
203 über die Sammelleitung 202 empfangen wird. Diese Anforderung enthält die gewünschte Adresse und Operation.
Der Inhalt des Registers 203 wird gleichzeitig in den Arbeitsspeicher 200 und das Verzeichnis 204 gebracht. Der Blockidentifizierer
30 des Datenblocks wird vom Verzeichnis 204 mit einem Gültigkeitsbit 34 und dem modifizierten Bit 31 in das
Verzeichnis Ausgangsregister 205 ausgelesen. Der Blockidentifizierer
30 wird mit der gewünschten Adresse im Decoder 211 verglichen, um zu bestimmen, ob die auszulesenden Daten sich im
Arbeitsspeicher 200 befinden oder nicht. Wenn sieh die gewünschten Daten im Speicher 200 befinden und gültig sind, was durch
WA 971 008
309811/0971
den Zustand des Gültigkeitsbits 34 angezeigt wird, werden diese Daten zum Prozessor 1 übertragen, gleichgültig ob sie vorher
modifiziert worden waren oder nicht. D.h. die Daten bereits vorher zum Speicherausgangsregister 201 gleichzeitig mit der Vergleichsoperation
des Verzeichnisses 204 ausgelesen worden waren, werden nun über die Sammelleitung 3 zum Prozessor 1 übertragen.
Wenn sich die gewünschten Daten nicht im Arbeitsspeicher 200 befinden, wird eine Abrufanforderung für die gewünschten Daten
von der Steuereinheit 6 zum Hauptspeicher ausgegeben. Dies erfolgt
dadurch, daß der Inhalt des Prozessoradressenregisters 203 über die Sammelleitung 3 zum Register 61 in Fig. 4 übertragen
wird. Die Steuereinheit decodiert die Information im Adressendecoder 60, um die vom Hauptspeicher gewünschte Operation zu
bestimmen. Die Adresse wird dann anhand des Speicher-Belegt-Verzeichnisses 62 überprüft, um herauszufinden, ob der gewünschte
Speicherbereich verfügbar ist. Sodann wählt die Intra-Steuerungs-Prioritäts-
und Auswahleinheit 64 die Priorität der anhängigen Anforderung aus und überträgt die Adresse und Operation in das
Inter-Steuerungs-Adressenregister 66. Vom Register 66 wird dann
die gespeicherte Information zu allen anderen Steuereinheiten 6 über die Inter-Steuereinheiten-Sammelleitung 7 und zum Steuer-Speicheradressenregister
100 gebracht. Die Daten werden auch vom Inter-Steuerungs-Adressenregister 66 in jeder Steuereinheit
6 über die Sammelleitung 7 zu jeder Inter-Steuerungs-Prioritätseinheit
70 in jeder anderen Steuereinheit 6 gebracht. Die Inter-Steuerungs-Prioritätseinheit
70 bestimmt dann die Priorität zwischen den Anforderungen und den einzelnen Steuereinheiten 6.
Alle Steuereinheiten 6 führen diese Operation gleichzeitig aus. Wenn die Auswahl getroffen wurde, bringt die Steuereinheit 6,
welche die ausgewählte Anforderung herausgab, den Inhalt ihres Inter-Steuerungs-Adressenregisters 66 in ihr Steueradressenregister
72. Gleichzeitig bringen die anderen beiden Steuereinheiten 6 den Inhalt des ausgewählten Inter-Steuerungs-Adressenregisters
66 auf die Sammelleitung 7. Nachdem die Auswahl getroffen wurde, sind in allen drei Steueradressenregistern
WA97iooe 309811/0971
72 gleiche Informationen zum Zwecke der Bestimmung der Notwendigkeit
der Aussendung zu den mit den einzelnen Steuereinheiten 6 verbunden Prozessoren 1 gespeichert. Zugleich mit dieser Operation
wird der Inhalt des ausgewählten Inter-Steuerungs-Adressenregister
66 in das zugehörige Steuer-Speicheradressenregister 100 geladen und ist auf diese Weise verfügbar zur Übertragung
zum Hauptspeicher.
Zugleich mit der Übertragung der Daten vom Steuer-Speicheradressenregister
100 über die Sammelleitung 8 zur Auslösung der Hauptspeicheroperation werden die Daten im Steueradressenregister
72 mit dem Inhalt des Konfigurationssteuerregister 90 im Vergleicher 91 verglichen, um zu bestimmen, ob die ausgewählte
Adresse im Pufferspeicher 2 anwesend sein kann. Wenn ein positiver Vergleich gefunden wird, wird der Inhalt des Steueradressenregisters
72 zum Prozessor 1, für den Vergleich gefunden
wurde, über die Sammelleitung 3 ausgesendet. Diese Aussendungsoperation wird von allen Steuereinheiten ausgeführt bis
auf diejenige, welche zu dem Prozessor gehört, der die Hauptspeicheroperation veranlaßt hat.
Die Adressen- und Operationsinformation wird vom Pufferspeicher 2 über die Sammelleitung empfangen und ins Aussendeadressenregister
206 geladen. Der Inhalt des Registers 206 wird gleichzeitig dem Arbeitsspeicher 200 und dem Verzeichnis 204 zugeführt.
Die vom Verzeichnis 204 ausgelesene Information, welche ins Verzeichnis-Ausgangsregister 205 geladen wird, wird im Decoder
211 mit dem Inhalt des Aussendeadressenregisters 206 verglichen, um den Status der gewünschten Adresse festzustellen.
Wenn der Vergleich positiv in bezug auf den Pufferspeicher 2 ausfällt, d.h., wenn die gewünschten Daten im Pufferspeicher 2
vorhanden sind, bestimmt der Decoder 211, welche Operation ausgeführt werden soll. Dies wird davon abhängen, ob die Daten
gültig sind, ob sie modifiziert worden sind und welche Art von Operation gewünscht wird. Mit den Aussendungsdaten werden
WA 971 OO8
3098 1 1 / Π 9 7 1
zugleich Steuerbits übertragen, welche die ursprünglich gewünschte
Operation als eine Schreib- oder Leseoperation bezeichnen. Wenn das Absuchen des Verzeichnisses 204 keinen positiven Adressenvergleich
ergibt, zeigt der Decoder 211 an, daß keine Operation verlangt wird. Wenn jedoch ein Vergleich zwischen dem Inhalt
des Verzeichnisses 204 und der gewünschten Adresse festgestellt wird und wenn das Modifikationsbit 31 angibt, daß die Daten im
Arbeitsspeicher 200 nicht modifiziert worden sind, gibt es zwei Möglichkeiten. Wenn die Aussendungsoperation eine Schreiboperation
ist, ist es notwendig, die betreffenden Daten im Arbeitsspeicher 200 als ungültig zu bezeichnen, was mit Hilfe des geeigneten Zustandes
des Gültigkeitsbits 34 geschieht. Wenn jedoch die Aussendeoperation eine Leseoperation ist, ist keinerlei Änderung der
Daten im Arbeitsspeicher 200 notwendig.
Wenn die Vergleichsoperation zwischen dem Inhalt des Verzeichnisses
204 und den Aussendedaten anzeigt, daß ein positiver Vergleich vorhanden ist und daß die Daten im Arbeitsspeicher
200 modifiziert worden sind, ist es notwendig, die betreffende Eintragung im Verzeichnis 204 für diese Daten als ungültig zu
bezeichnen und die Daten zum anfordernden Prozessor zu senden.
Diese Schritte sind notwendig, um sicherzustellen, daß nur eine einzige Kopie von modifizierten Daten außerhalb des Hauptspeichers
gespeichert sein kann.
Falls ein Vergleich anzeigt, daß die gewünschten Daten in einem Pufferspeicher 2 vorhanden sind und diese Daten nun zum anfordernden
Prozessor gesendet werden sollen, werden die folgenden Schritte durchgeführt. Der Decoder 211 sendet ein Signal zur
Steuereinheit 6 über die Sammelleitung 3, und speziell zur Aussendeverriegelungsschaltung 92. Zugleich mit diesem Signal
erzeugt der Decoder 211 ein Torsignal, welches die gewünschten Daten aus dem Arbeitsspeicher-Ausgangsregister 201 über die
Sammelleitung 3 zum Steuereinheit-Datenregister 94 in der
WA 971 008 309Ρ11/Π9
Steuereinheit 6 bringt.
Die oben genannten Aussendeoperationen zum Prozessor 1 wurden ausgeführt während der Hauptspeicher einen Lesezyklus zum Auslesen
der gewünschten Daten begonnen hat.
In einer möglichen Ausführungsform kann der Hauptspeicher 9 ein Speicher mit zerstörender Auslesung sein und benötigt deshalb
einen Schreibzyklus zum Wiedereinschreiben der auf zerstörende Weise ausgelesenen Daten. Wenn vom Hauptspeicher 9 festgestellt
wird, daß die Aussendeverriegelungsschaltung 92 in einer Steuereinheit 6 gesetzt wurde, ändert der Hauptspeicher die Speicheroperatioh
in einen Schreibvorgang um. Wenn der Hauptspeicher 9
feststellt, daß eine Aussendeverriegelungsschaltung 92 gesetzt wurde, veranlaßt er einen Speicherzyklus und bringt die Daten
vom Steuereinheitdaten-EIN-Register 94, und zwar in der Steuereinheit,
deren Aussendeverriegelungsschaltung gesetzt wurde, in den Hauptspeicher über die Sammelleitung 8. Vom Hauptspeicher
werden dann diese Daten an der gewünschten Hauptspeicheradresse gespeichert, während zugleich die gleichen Daten über die Sammelleitung
8 zum Daten-AUS-Register 96 der Steuereinheit 6, welche die Daten verlangt hatte, gebracht werden. Auf diese Art werden
von der anfordernden Steuereinheit immer die Daten erhalten, welche normalerweise bei einer Hauptspeicher-Abrufanforderung
ausgelesen worden wären. Die Steuereinheit 6 bringt dann den Inhalt ihres Daten-AüS-Register 96 zum dazugehörigen Prozessor
über die Sammelleitung 3 und beendet damit die Operation.'
Die Funktionsweise der beschriebenen Einrichtung kann also wie
folgt zusammengefaßt werden:
Wenn ein Prozessor die angeforderten Daten nicht in seinem Pufferspeicher findet, sendet er eine Anforderung zu der mit
ihm verbundenen Steuereinheit aus. Diese Steuereinheit stellt die Schnittstelle zwischen dem Prozessor einerseits und dem
30981 1/0971
WA 971 008
Hauptspeicher und den anderen Steuereinheiten andererseits dar. Die Steuereinheit untersucht alle anstehenden Anforderungen für
einen Speicherzugriff. Eine Prioritätseinrichtung erster Ordnung wählt eine Anforderung für einen nichttätigen Speicherteil aus,
wobei festgelegte Prioritäten für die verschiedenen Benutzer und eine Liste von tätigen Hauptspeicherbereichen verwendet werden.
Nachdem eine Anforderung ausgewählt wurde, wird sie zu allen anderen Steuereinheiten übertragen. Nach einer gewissen Übertragungsverzögerung
enthält jede Steuereinheit die Adressen der von den verschiedenen Steuereinheiten ausgewählten Anforderungen.
Eine Prioritätseinrichtung zweiter Ordnung, welche gleich aufgebaut ist wie die oben beschriebene erste Ordnung, tritt dann in
jeder Steuereinheit in Tätigkeit und bestimmt eine Anforderung, welche ausgeführt werden soll. Diejenige Steuereinheit, von der
die so bestimmte Anforderung stammt, überträgt dann zum Hauptspeicher die ausgewählte Anforderung und löst damit einen Hauptspeicherzyklus
aus. Zur selben Zeit wird die ausgewählte Anforderung und die Adresse von jeder Steuereinheit zu ihrem Prozessor
ausgesendet. Wenn die Aussendeinformation vom Prozessor empfangen wurde, wird ein Zugriff zum Pufferspeicherverzeichnis
durchgeführt, um festzustellen, ob eine modifizierte Version der gewünschten Daten sich im betreffenden Pufferspeicher befindet.
Wenn die Aussendeinformation eine Abrufanforderung anzeigt
und modifizierte Daten im Pufferspeicher vorhanden sind, muß sogleich ein Zugriff zum Pufferspeicher durchgeführt werden
und die ausgelesenen Daten zu der zugehörigen Steuereinheit übertragen werden. Die Steuereinheit ihrerseits gibt die Daten
auf die Datensammelleitung zum Hauptspeicher. Zusätzlich wird ein Signal zur Hauptspeichereinheit gesandt, um den Lesezyklus
in einen Schreibzyklus umzuändern, wodurch die modifizierten Daten die Daten ersetzen können, welche an dieser Stelle im
Hauptspeicher gespeichert waren. Zur gleichen Zeit werden die Daten auch auf die Ausgangs-Datensammelleitung gegeben und zu
der anfordernden Steuereinheit übertragen, so als ob diese Daten als Folge der ursprünglichen Abrufanforderung aus dem
WA 971 008
3098 1 1 /0971
Hauptspeicher ausgelesen worden wären. Auf diese Weise werden
also die vom Hauptspeicher verlangten Daten in Wirklichkeit von einem Pufferspeicher geliefert, ohne einen zusätzlichen Speicher·^·
zyklus notwendig zu machen.
Für die Informationsaussendung gelten folgende Regeln:
1. Alle Eingangs-ZAusgangsspeicherzugriffe werden ausgesendet.
2. Alle Datenabrufanforderungen für Prozessoren werden ausgesendet.
3. Die erste Einspeicheroperation in einen Datenblock/ welcher gültig in einem Pufferspeicher gespeichert ist, aber nicht
modifiziert wurde im Puffer, verursacht eine neue Abrufanforderung
für die gleichen Daten und erzeugt somit eine Aussendeoperation.
Die einzige Hauptspeicheroperation, welche keine Aussendeoperation
verursacht, besteht im Ersatz eines Datenblocks in einem Pufferspeicher, wobei modifizierte Daten ersetzt werden. In diesem Falle
muß eine Einspeicheroperation vom Pufferspeicher zum Hauptspeicher durchgeführt werden bevor eine Abrufanforderung für die neuen
Daten ausgeführt werden kann.
Alle Aussendesignale müssen zu allen Prozessoren gesandt werden mit Ausnahme des Prozessors, welcher den Hauptspeicherzugriff
verlangt hat. Hierfür gibt es eine einzige Ausnahme, wenn ein Datenersatz durchgeführt wird. In diesem Falle wird eine umgekehrte
Aussendeoperation zurück nur zum anfordernden Prozessor ausgeführt, um die bestehenden Steuer- und Ablaufeinrichtungen dazu benutzen
zu können, diese Daten im Speicher abspeichern zu können.
Zu beachten ist also, daß ein Hauptspeicherlesezyklus in einen
Schreibzyklus umgewandelt werden kann, wenn eine Aussendeoperation modifizierte Daten im Pufferspeicher eines anderen Prozessors feststellt.
Hierbei werden zugleich modifizierte Daten in den Hauptspeicher eingeschrieben und außerdem zum anfordernden Benutzer
WA971008 309P11/0971
übertragen. Bei diesen Operationen werden die bestehenden Hauptspeichersairanelleitungen
verwendet, um Daten zwischen den Pufferspeichern übertragen zu können. Ebenso werden die bestehenden
Steuerdatenpfade mitbenutzt, um Aussendeoperationen zum Einschreiben
von Daten in den Hauptspeicher durchführen zu können. Die bestehenden Übertragungseinrichtungen werden also dazu verwendet
die neuesten Daten vom Pufferspeicher eines anderen Prozessors auszulesen und zugleich in den Hauptspeicher zu übertragen
.
3 0 9 8 11/0971
WA 971 008
Claims (6)
- PATENTANSPRÜCHE<1> Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern und Steuereinheiten sowie mit einem gemeinsamen Hauptspeicher und einem Verzeichnis zur Speicherung von Angaben über einen Pufferspeicher, in dem eine Kopie eines bestimmten Datenblocks gespeichert ist,dadurch gekennzeichnet, daß in jeder Steuereinheit (6) ein Inter-Steuerungs-Adressenregister (66) zur Aufnahme von Hauptspeicheranforderungen des zugehörigen Prozessors (1) und ein damit verbundenes Steueradressenregister (72), welches die Anforderungsinformation zu einem Aussendeadressenregister (206) in jedem Pufferspeicher überträgt, vorgesehen ist,derart, daß, wenn die gewünschten Daten in modifizierter Form in irgendeinem Pufferspeicher vorhanden sind, eine Hauptspeicherleseoperation in eine Schreiboperation dieser modifizierten Daten umgewandelt wird und zugleich die modifizierten Daten zum anfordernden Prozessor übertragen werden.
- 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Hauptspeicheranforderung vom Inter-Steuerungs-Adressenregister (66) zum Steueradressenregister (72) über eine Inter-Steuerungs-Prioritätseinheit (70) übertragen wird, welche unter den Anforderungen von allen Steuereinheiten eine nach Maßgabe einer vorgegebenen Priorität auswählt.
- 3. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß in jeder Steuereinheit ein Adressendecoder (60, Fig. 4) zur Aufnahme von Hauptspeicheranforderungen von Eingangs-/Ausgangseinheiten (69) oder vom betreffenden Prozessor (61) vorgesehen ist, welcher eine Information überWA 971 008 309811/0971die adressierte Hauptspeicherstelle und die gewünschte Operation liefert,daß ein Speicher-Belegt-Verzeichnis (62) , welches die gerade tätigen Speicherbereiche angibt und Zugriffe zu solchen tätigen Bereichen vermeidet, vorgesehen ist, und daß der Ausgang dieses Verzeichnisses mit einer Intra-Steuerungs-Prioritäts- und Auswahleinheit (64) verbunden ist, welche eine Priorität zwischen Eingangs-/Ausgangseinheiten (5), zwischen dem dazugehörigen Prozessor und zwischen mehreren, gleichzeitig in diesem Prozessor ablaufenden Informationsreihen angibt, und welcher mit dem Eingang des Inter-Steuerungs-Adressenregisters (66) verbunden ist.
- 4. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß das Aussendeadressenregister (206) im Pufferspeicher (2) mit einem Verzeichnis (204) und dem Arbeitsspeicher (200) des Pufferspeichers verbunden ist, wobei im Verzeichnis neben einer Bezeichnung (30, Fig. 3) der gerade im Arbeitsspeicher gespeicherten Blocks auch Steuerbits (31, 32, 33, 34) gespeichert sind, welche angeben, ob die Daten modifiziert worden waren und gültig sind und daß der Ausgang des Verzeichnisses (204) mit einem Decoder (211) verbunden ist, welcher den Status der gespeicherten Datenblöcke im Arbeitsspeicher (200) angibt.
- 5. Datenverarbeitungsanlage nach Anspruch 1, gekennzeichnet, durch eine Aussendeverriegelungsschaltung (92) in jeder Steuereinheit (6), welche gesetzt wird, wenn durch eine Aussendeoperation in einem Pufferspeicher festgestellt wird, daß modifizierte Daten gespeichert sind und vom Hauptspeicher abgefühlt wird, um eine Leseoperation in eine Schreiboperation umzuändern.30981 1 /0971WA 971 008
- 6. Datenverarbeitungsanlage nach Anspruch 3, gekennzeichnet durch ein Speicherfolgeregister (82) und ein Steuer-Speicheradressenregister (100), welche eingangsseitig mit dem Inter-Steuerungs-Adressenregister (66) verbunden sind und an den Hauptspeicher die zur Durchführung einer Hauptspeicheroperation nötige Adresseninformation und Steuerinformation liefern.3 0 9 8 11/0971WA 971 008Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17937671A | 1971-09-10 | 1971-09-10 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2226382A1 true DE2226382A1 (de) | 1973-03-15 |
DE2226382B2 DE2226382B2 (de) | 1979-12-13 |
DE2226382C3 DE2226382C3 (de) | 1980-08-28 |
Family
ID=22656338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2226382A Expired DE2226382C3 (de) | 1971-09-10 | 1972-05-31 | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern |
Country Status (8)
Country | Link |
---|---|
US (1) | US3771137A (de) |
JP (1) | JPS5149535B2 (de) |
CA (1) | CA954231A (de) |
DE (1) | DE2226382C3 (de) |
FR (1) | FR2155203A5 (de) |
GB (1) | GB1387043A (de) |
IT (1) | IT953791B (de) |
SE (1) | SE426110B (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2235841A1 (de) | 1972-01-20 | 1973-07-26 | Ibm | Anordnung zur speichersteuerung mit logischer und echter adressierung |
DE2856715A1 (de) * | 1977-12-29 | 1979-09-27 | Fujitsu Ltd | Verfahren zum durchfuehren einer pufferspeicher-koinzidenz in einem mehrprozessor |
Families Citing this family (119)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1354827A (en) * | 1971-08-25 | 1974-06-05 | Ibm | Data processing systems |
US4115866A (en) * | 1972-02-25 | 1978-09-19 | International Standard Electric Corporation | Data processing network for communications switching system |
IT988956B (it) * | 1973-06-12 | 1975-04-30 | Olivetti & Co Spa | Governo multiplo |
US3916384A (en) * | 1973-06-15 | 1975-10-28 | Gte Automatic Electric Lab Inc | Communication switching system computer memory control arrangement |
JPS546171B2 (de) * | 1973-09-19 | 1979-03-26 | ||
US3940743A (en) * | 1973-11-05 | 1976-02-24 | Digital Equipment Corporation | Interconnecting unit for independently operable data processing systems |
US3889237A (en) * | 1973-11-16 | 1975-06-10 | Sperry Rand Corp | Common storage controller for dual processor system |
US3934227A (en) * | 1973-12-05 | 1976-01-20 | Digital Computer Controls, Inc. | Memory correction system |
NL7317545A (nl) * | 1973-12-21 | 1975-06-24 | Philips Nv | Geheugensysteem met hoofd- en buffergeheugen. |
US4073005A (en) * | 1974-01-21 | 1978-02-07 | Control Data Corporation | Multi-processor computer system |
JPS5440182B2 (de) * | 1974-02-26 | 1979-12-01 | ||
JPS5812608B2 (ja) * | 1974-03-05 | 1983-03-09 | 日本電気株式会社 | デンシケイサンキシステム |
GB1506972A (en) * | 1976-02-06 | 1978-04-12 | Int Computers Ltd | Data processing systems |
FR2344094A1 (fr) * | 1976-03-10 | 1977-10-07 | Cii | Systeme de gestion coherente des echanges entre deux niveaux contigus d'une hierarchie de memoires |
US4065809A (en) * | 1976-05-27 | 1977-12-27 | Tokyo Shibaura Electric Co., Ltd. | Multi-processing system for controlling microcomputers and memories |
GB1505603A (en) * | 1976-07-07 | 1978-03-30 | Ibm | Data processing systems |
US4126893A (en) * | 1977-02-17 | 1978-11-21 | Xerox Corporation | Interrupt request controller for data processing system |
US4157586A (en) * | 1977-05-05 | 1979-06-05 | International Business Machines Corporation | Technique for performing partial stores in store-thru memory configuration |
US4136386A (en) * | 1977-10-06 | 1979-01-23 | International Business Machines Corporation | Backing store access coordination in a multi-processor system |
US4142234A (en) * | 1977-11-28 | 1979-02-27 | International Business Machines Corporation | Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system |
US4357656A (en) * | 1977-12-09 | 1982-11-02 | Digital Equipment Corporation | Method and apparatus for disabling and diagnosing cache memory storage locations |
US4354232A (en) * | 1977-12-16 | 1982-10-12 | Honeywell Information Systems Inc. | Cache memory command buffer circuit |
US4305124A (en) * | 1978-06-09 | 1981-12-08 | Ncr Corporation | Pipelined computer |
FR2430637A1 (fr) * | 1978-07-06 | 1980-02-01 | Cii Honeywell Bull | Procede et dispositif pour garantir la coherence des informations entre des caches et d'autres memoires d'un systeme de traitement de l'information travaillant en multitraitement |
FR2431733A1 (fr) * | 1978-07-21 | 1980-02-15 | Sfena | Systeme de communication par memoire commune dans un calculateur comprenant plusieurs processeurs |
US4228503A (en) * | 1978-10-02 | 1980-10-14 | Sperry Corporation | Multiplexed directory for dedicated cache memory system |
US4257097A (en) * | 1978-12-11 | 1981-03-17 | Bell Telephone Laboratories, Incorporated | Multiprocessor system with demand assignable program paging stores |
US4282572A (en) * | 1979-01-15 | 1981-08-04 | Ncr Corporation | Multiprocessor memory access system |
JPS55134459A (en) * | 1979-04-06 | 1980-10-20 | Hitachi Ltd | Data processing system |
US4860379A (en) * | 1979-05-18 | 1989-08-22 | General Instrument Corporation | Data communications system |
US4293910A (en) * | 1979-07-02 | 1981-10-06 | International Business Machines Corporation | Reconfigurable key-in-storage means for protecting interleaved main storage |
DE2939412C2 (de) * | 1979-09-28 | 1983-11-17 | Siemens AG, 1000 Berlin und 8000 München | Schaltungsanordung zum Adressieren von Daten für Lese- und Schreibzugriffe in einer Datenverarbeitungsanlage |
US4313161A (en) * | 1979-11-13 | 1982-01-26 | International Business Machines Corporation | Shared storage for multiple processor systems |
JPS5680872A (en) * | 1979-12-06 | 1981-07-02 | Fujitsu Ltd | Buffer memory control system |
DE3046912C2 (de) * | 1979-12-14 | 1994-05-11 | Bull Hn Information Syst | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage |
FR2474201B1 (fr) * | 1980-01-22 | 1986-05-16 | Bull Sa | Procede et dispositif pour gerer les conflits poses par des acces multiples a un meme cache d'un systeme de traitement numerique de l'information comprenant au moins deux processus possedant chacun un cache |
US4345309A (en) * | 1980-01-28 | 1982-08-17 | Digital Equipment Corporation | Relating to cached multiprocessor system with pipeline timing |
US4507781A (en) * | 1980-03-14 | 1985-03-26 | Ibm Corporation | Time domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method |
DE3012205C2 (de) * | 1980-03-28 | 1982-05-27 | Siemens AG, 1000 Berlin und 8000 München | Multiprozessor-Datenverarbeitungsanlage mit mehreren jeweils einem Prozessor zugeordneten Pufferspeichern |
FR2479532B1 (fr) * | 1980-04-01 | 1986-09-19 | Bull Sa | Procede et dispositif pour gerer les transferts d'informations entre un ensemble memoire et les differentes unites de traitement d'un systeme de traitement numerique de l'information |
US4399506A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Store-in-cache processor means for clearing main storage |
US4394731A (en) * | 1980-11-10 | 1983-07-19 | International Business Machines Corporation | Cache storage line shareability control for a multiprocessor system |
DE3177181D1 (de) * | 1980-11-10 | 1990-06-21 | Ibm | Anordnung zur erkennung und verarbeitung von synonymen in cache-speichern. |
JPS57105879A (en) * | 1980-12-23 | 1982-07-01 | Hitachi Ltd | Control system for storage device |
US4410944A (en) * | 1981-03-24 | 1983-10-18 | Burroughs Corporation | Apparatus and method for maintaining cache memory integrity in a shared memory environment |
US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
US4945471A (en) * | 1981-04-01 | 1990-07-31 | Teradata Corporation | Message transmission system for selectively transmitting one of two colliding messages based on contents thereof |
US4539636A (en) * | 1981-06-24 | 1985-09-03 | Elevator Gmbh | Apparatus for inter-processor data transfer in a multi-processor system |
US4525777A (en) * | 1981-08-03 | 1985-06-25 | Honeywell Information Systems Inc. | Split-cycle cache system with SCU controlled cache clearing during cache store access period |
US4463420A (en) * | 1982-02-23 | 1984-07-31 | International Business Machines Corporation | Multiprocessor cache replacement under task control |
US4503497A (en) * | 1982-05-27 | 1985-03-05 | International Business Machines Corporation | System for independent cache-to-cache transfer |
JPS5955565A (ja) * | 1982-09-24 | 1984-03-30 | Fujitsu Ltd | マルチフア−ムウエア方式 |
US4491915A (en) * | 1982-11-30 | 1985-01-01 | Rca Corporation | Multiprocessor-memory data transfer network |
US4698746A (en) * | 1983-05-25 | 1987-10-06 | Ramtek Corporation | Multiprocessor communication method and apparatus |
US4695951A (en) * | 1983-07-07 | 1987-09-22 | Honeywell Bull Inc. | Computer hierarchy control |
US4858111A (en) * | 1983-07-29 | 1989-08-15 | Hewlett-Packard Company | Write-back cache system using concurrent address transfers to setup requested address in main memory before dirty miss signal from cache |
US4875154A (en) * | 1983-10-13 | 1989-10-17 | Mitchell Maurice E | Microcomputer with disconnected, open, independent, bimemory architecture, allowing large interacting, interconnected multi-microcomputer parallel systems accomodating multiple levels of programmer defined heirarchy |
JPS60138653A (ja) * | 1983-12-27 | 1985-07-23 | Hitachi Ltd | 階層記憶制御方式 |
US4905145A (en) * | 1984-05-17 | 1990-02-27 | Texas Instruments Incorporated | Multiprocessor |
JPS60258671A (ja) * | 1984-06-05 | 1985-12-20 | Nec Corp | プロセツサ |
JPS6170654A (ja) * | 1984-09-14 | 1986-04-11 | Hitachi Ltd | 分散処理システムにおける資源管理方式 |
US4713755A (en) * | 1985-06-28 | 1987-12-15 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
JPS6279797U (de) * | 1985-11-08 | 1987-05-21 | ||
US4800488A (en) * | 1985-11-12 | 1989-01-24 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of propagating resource information in a computer network |
JPH059965Y2 (de) * | 1986-03-03 | 1993-03-11 | ||
US4768148A (en) * | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
US5008853A (en) * | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
US5220657A (en) * | 1987-12-02 | 1993-06-15 | Xerox Corporation | Updating local copy of shared data in a collaborative system |
US5317716A (en) * | 1988-08-16 | 1994-05-31 | International Business Machines Corporation | Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line |
US5029070A (en) * | 1988-08-25 | 1991-07-02 | Edge Computer Corporation | Coherent cache structures and methods |
US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | Coherent cache structures and methods |
US5276806A (en) * | 1988-09-19 | 1994-01-04 | Princeton University | Oblivious memory computer networking |
US5247659A (en) * | 1988-10-06 | 1993-09-21 | International Computers Limited | Method for bootstrap loading in a data processing system comprising searching a plurality of program source devices for a bootstrap program if initial data indicating a bootstrap program source device fails a validity check |
US5187793A (en) * | 1989-01-09 | 1993-02-16 | Intel Corporation | Processor with hierarchal memory and using meta-instructions for software control of loading, unloading and execution of machine instructions stored in the cache |
US5161219A (en) * | 1989-01-13 | 1992-11-03 | International Business Machines Corporation | Computer system with input/output cache |
US5185875A (en) * | 1989-01-27 | 1993-02-09 | Digital Equipment Corporation | Method and apparatus for reducing memory read latency in a shared memory system with multiple processors |
US5371874A (en) * | 1989-01-27 | 1994-12-06 | Digital Equipment Corporation | Write-read/write-pass memory subsystem cycle |
US5210848A (en) * | 1989-02-22 | 1993-05-11 | International Business Machines Corporation | Multi-processor caches with large granularity exclusivity locking |
WO1991006910A1 (en) * | 1989-10-17 | 1991-05-16 | Mitchell Maurice E | A microcomputer with disconnected, open, independent, bimemory architecture |
US5206941A (en) * | 1990-01-22 | 1993-04-27 | International Business Machines Corporation | Fast store-through cache memory |
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
US5263144A (en) * | 1990-06-29 | 1993-11-16 | Digital Equipment Corporation | Method and apparatus for sharing data between processors in a computer system |
US5544347A (en) | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US5953510A (en) * | 1991-09-05 | 1999-09-14 | International Business Machines Corporation | Bidirectional data bus reservation priority controls having token logic |
US5530835A (en) * | 1991-09-18 | 1996-06-25 | Ncr Corporation | Computer memory data merging technique for computers with write-back caches |
US5361345A (en) * | 1991-09-19 | 1994-11-01 | Hewlett-Packard Company | Critical line first paging system |
US5727164A (en) * | 1991-12-13 | 1998-03-10 | Max Software, Inc. | Apparatus for and method of managing the availability of items |
WO1993018461A1 (en) * | 1992-03-09 | 1993-09-16 | Auspex Systems, Inc. | High-performance non-volatile ram protected write cache accelerator system |
JP2568017B2 (ja) * | 1992-03-12 | 1996-12-25 | 株式会社東芝 | マイクロプロセッサ及びそれを使用したデータ処理システム |
US5319766A (en) * | 1992-04-24 | 1994-06-07 | Digital Equipment Corporation | Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system |
US5689679A (en) * | 1993-04-28 | 1997-11-18 | Digital Equipment Corporation | Memory system and method for selective multi-level caching using a cache level code |
US5504874A (en) * | 1993-09-29 | 1996-04-02 | Silicon Graphics, Inc. | System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions |
US5581704A (en) * | 1993-12-06 | 1996-12-03 | Panasonic Technologies, Inc. | System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client |
US5649152A (en) * | 1994-10-13 | 1997-07-15 | Vinca Corporation | Method and system for providing a static snapshot of data stored on a mass storage system |
US5835953A (en) * | 1994-10-13 | 1998-11-10 | Vinca Corporation | Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating |
US5649157A (en) * | 1995-03-30 | 1997-07-15 | Hewlett-Packard Co. | Memory controller with priority queues |
US5680640A (en) | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
US5870625A (en) * | 1995-12-11 | 1999-02-09 | Industrial Technology Research Institute | Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command |
US6601147B1 (en) * | 1999-03-31 | 2003-07-29 | International Business Machines Corporation | Computer system and method for maintaining an integrated shared buffer memory in a group of interconnected hosts |
US6728823B1 (en) * | 2000-02-18 | 2004-04-27 | Hewlett-Packard Development Company, L.P. | Cache connection with bypassing feature |
JP4704659B2 (ja) | 2002-04-26 | 2011-06-15 | 株式会社日立製作所 | 記憶装置システムの制御方法および記憶制御装置 |
JP2004110367A (ja) | 2002-09-18 | 2004-04-08 | Hitachi Ltd | 記憶装置システムの制御方法、記憶制御装置、および記憶装置システム |
US7263593B2 (en) | 2002-11-25 | 2007-08-28 | Hitachi, Ltd. | Virtualization controller and data transfer control method |
JP2004220450A (ja) | 2003-01-16 | 2004-08-05 | Hitachi Ltd | ストレージ装置、その導入方法、及びその導入プログラム |
JP2005018193A (ja) | 2003-06-24 | 2005-01-20 | Hitachi Ltd | ディスク装置のインタフェースコマンド制御方法ならびに計算機システム |
JP4386694B2 (ja) | 2003-09-16 | 2009-12-16 | 株式会社日立製作所 | 記憶システム及び記憶制御装置 |
JP4598387B2 (ja) | 2003-09-17 | 2010-12-15 | 株式会社日立製作所 | 記憶システム |
US7219201B2 (en) * | 2003-09-17 | 2007-05-15 | Hitachi, Ltd. | Remote storage disk control device and method for controlling the same |
JP4307202B2 (ja) | 2003-09-29 | 2009-08-05 | 株式会社日立製作所 | 記憶システム及び記憶制御装置 |
JP4307964B2 (ja) * | 2003-11-26 | 2009-08-05 | 株式会社日立製作所 | アクセス制限情報設定方法および装置 |
JP2005202893A (ja) | 2004-01-19 | 2005-07-28 | Hitachi Ltd | 記憶デバイス制御装置、ストレージシステム、プログラムを記録した記録媒体、情報処理装置、及びストレージシステムの制御方法 |
JP4391265B2 (ja) | 2004-02-26 | 2009-12-24 | 株式会社日立製作所 | ストレージサブシステムおよび性能チューニング方法 |
JP4646574B2 (ja) | 2004-08-30 | 2011-03-09 | 株式会社日立製作所 | データ処理システム |
JP2006127028A (ja) | 2004-10-27 | 2006-05-18 | Hitachi Ltd | 記憶システム及び記憶制御装置 |
JP2006134049A (ja) * | 2004-11-05 | 2006-05-25 | Hitachi Ltd | ホスト装置が接続される制御装置の接続部とその制御装置が備える記憶デバイスとの間の論理パスを生成する装置及び方法 |
US8621154B1 (en) | 2008-04-18 | 2013-12-31 | Netapp, Inc. | Flow based reply cache |
US8161236B1 (en) | 2008-04-23 | 2012-04-17 | Netapp, Inc. | Persistent reply cache integrated with file system |
US8171227B1 (en) | 2009-03-11 | 2012-05-01 | Netapp, Inc. | System and method for managing a flow based reply cache |
-
1971
- 1971-09-10 US US00179376A patent/US3771137A/en not_active Expired - Lifetime
-
1972
- 1972-04-27 IT IT23579/72A patent/IT953791B/it active
- 1972-05-24 GB GB2434472A patent/GB1387043A/en not_active Expired
- 1972-05-24 FR FR7219234A patent/FR2155203A5/fr not_active Expired
- 1972-05-26 JP JP47051779A patent/JPS5149535B2/ja not_active Expired
- 1972-05-31 DE DE2226382A patent/DE2226382C3/de not_active Expired
- 1972-06-05 CA CA143,833A patent/CA954231A/en not_active Expired
- 1972-08-31 SE SE7211249A patent/SE426110B/xx unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2235841A1 (de) | 1972-01-20 | 1973-07-26 | Ibm | Anordnung zur speichersteuerung mit logischer und echter adressierung |
DE2856715A1 (de) * | 1977-12-29 | 1979-09-27 | Fujitsu Ltd | Verfahren zum durchfuehren einer pufferspeicher-koinzidenz in einem mehrprozessor |
Also Published As
Publication number | Publication date |
---|---|
DE2226382C3 (de) | 1980-08-28 |
US3771137A (en) | 1973-11-06 |
GB1387043A (en) | 1975-03-12 |
IT953791B (it) | 1973-08-10 |
FR2155203A5 (de) | 1973-05-18 |
JPS5149535B2 (de) | 1976-12-27 |
DE2226382B2 (de) | 1979-12-13 |
CA954231A (en) | 1974-09-03 |
JPS4838036A (de) | 1973-06-05 |
SE426110B (sv) | 1982-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE3011552C2 (de) | ||
DE69734129T2 (de) | Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren | |
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE3151745C2 (de) | ||
DE2841041A1 (de) | Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2523414A1 (de) | Hierarchische speicheranordnung | |
DE3621321A1 (de) | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE2547488A1 (de) | Mikroprogrammierte datenverarbeitungsanlage | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE69726795T2 (de) | Kodierungsverfahren des Verzeichnisstatus in einem gemeinsamen, verteilten Speichersystem mit koherenten Pufferspeichern | |
DE112019000627T5 (de) | Speicherstrukturbasiertes Coherency Directory Cache | |
DE102017001999A1 (de) | RÜCKWÄRTSABBILDUNG MIT EFFIZIENTER UND DYNAMISCHER GRÖßE ZUR HANDHABUNG VON DATEN MIT VARIABLER GRÖßE | |
DE2422732A1 (de) | Hierarchische speicheranordnung | |
DE60029270T2 (de) | Dynamische Rekonfiguration des Cache-Speichers eines Mikrokontrollers | |
CH495584A (de) | Datenverarbeitungsanlage | |
EP0265636A1 (de) | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher | |
DE3025167C2 (de) | Datenverarbeitungseinrichtung | |
DE3340956A1 (de) | Verfahren und vorrichtung zur erfassung von speicherzugriffen | |
DE3121710C2 (de) | Steuereinrichtung für einen virtuellen Speicher in einer Datenverarbeitungsanlage | |
EP1675010A2 (de) | Verfahren zur Aktualisierung von Einträgen von Adressumsetzpuffern in einem Mehrprozessor-Computersystem | |
DE10227256C1 (de) | Verfahren zum Adressieren von blockweise löschbaren Speichern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |