DE2226382C3 - Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern - Google Patents

Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern

Info

Publication number
DE2226382C3
DE2226382C3 DE2226382A DE2226382A DE2226382C3 DE 2226382 C3 DE2226382 C3 DE 2226382C3 DE 2226382 A DE2226382 A DE 2226382A DE 2226382 A DE2226382 A DE 2226382A DE 2226382 C3 DE2226382 C3 DE 2226382C3
Authority
DE
Germany
Prior art keywords
memory
main memory
data
control
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.)
Expired
Application number
DE2226382A
Other languages
English (en)
Other versions
DE2226382A1 (de
DE2226382B2 (de
Inventor
Robert Paul Silver Spring Barner
John Anton Olney Deveer
Jan Gustav Brookeville Oblonsky
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2226382A1 publication Critical patent/DE2226382A1/de
Publication of DE2226382B2 publication Critical patent/DE2226382B2/de
Application granted granted Critical
Publication of DE2226382C3 publication Critical patent/DE2226382C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache 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

Die Erfindung betrifft eine Datenverarbeitungsan-
• lage 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 3581 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 Instruktionsfolgen 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 einem anderen Benutzer modifiziert worden waren. Es soll also erreicht werden, daß nur der neueste Stand einer bestimmten Information den Benutzern zur Verfügung
bo 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 Puffer-
speichern, in denen also noch die veralteten Daten gespeichert sind, auf ungültig gesetzt werden. Hierdurch kann den einzelnen Prozessoren angezeigt v/erden, 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 dem neuesten Stand der Daten hat, doch ist es hierbei notwendig, daß der neueste Datenstanri 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 Änderung 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 Teils davon gespeichert ist. Jedesmal wenn die Daten vom Hauptspeicher ausgelesen werden oder in den Pufferspeicher eingeschrieben werden, werden die 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öschungoperationen 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 Aufgaber 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 durch die im Anspruch 1 gekennzeichnete Einrichtung gelöst.
Mit der Erfindung wird der Vorteil erzielt, daß eine modifizierte Version von Daten in einem Pufferspeicher abgespeichert werden kann und daß jede" 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 p^m* 'r.men.
Ein Ausführungsbeispiel der Erfindung soll nun anhand der Figuren näher beschrieben werden. Es zeigt
Fig. 1 ein Blockschema einer Datenverarbeitungsanlage,
Fig. 2 ein Blockschema einer Pufferspeichereinrichtune.
Fig. 3 ein im Verzeichnis der Pufferspeichereinrichtung verwendetes Datenformat,
Fig. 4 ein Blockschema einer Einrichtung in einer Steuereinheit zur Prioritätenbestimmung,
Fig. 5 eine Einrichtung zur Durchführung von Übertragungsoperationen zwischen den Steuereinheiten,
Fig. 6 eine Einrichtung in der Steuereinheit zur Aussendungs-Steuerung.
ίο In Fig. 1 ist ein Multiprozssorsystem 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. Un 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 Ein-/ Ausgabe-Ausgangskanal 5 über eine Sammelleitung 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 Instruktionsfolgen gleichzeitig auszuführen, wobei alle diese Instruktionsfolgen Zugriffe zum Pufferspeicher 2 durchführen.
Beschreibung des Pufferspeichers
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! 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 geänderten 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"! vrschiedene Organisationen aufweisen. Im vorliegenden Ausführungsbeispiel enthält der Pufferspeicher vier Grundspeichermodule (BSMs) zu je 8192 Bytes, welche im Arbeitsspeicher 200 untergebracht sind. Jeder Grundspeichermodul ist in ein linkes und ein rechtes Segment 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 zwischen Pufferspeicher 2 und Hauptspeicher 9 dar.
ho Ein Block im Hauptspeicher kann in einem der beiden Segmente im Arbeitsspeicher 200 gespeichert sein. Dabei entspricht die laufende Blocknummer eines Datenblocks in einem Datensegment im Hauptspeicher der Teilbereichsnummer, d. h. der Teilbereichsadresse. Beispielsweise kann der Block Nr. 15 aus irgendeinem Datensegment im Hauptspeicher nur in einem Teilbereich mit der Adresse 15 gespeichert werden. Auf diese Weise können die Blockadressen-
bits direkt sowohl zur Adressierung des Verzeichnisses als auch des Pufferspeichers verwendet werden. Da in einem Grundspeichermodul sowohl ein linkes als auch ein rechtes Segment vorhanden ist, kann also ein bestimmter Block in einem bestimmten Grundspeichermodul auf zwei Wegen gespeichert werden. Mit Hilfe des Verzeichnisses wird dann festgestellt, ob der Block im linken oder rechten Segment gespeichert ist. 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 Systernadresse verwendet, in der die Bits S 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 Instruktionsfolgen von Bedeutung sind. Diese Instruktionsfolgen 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, 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 Instruktionsfolgen 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 Verzeichnis 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.
Das modifizierte Bit 31 und das Gültigkeätsbit 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 Aussendeoperation ü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 werden. Zum Speicher 200 ist ein Ausgangsregister 201 vorgesehen, um die vom Speicher 200 ausgelesenen Daten aufzunehmen. Ein »Steuereinheit-Daten-AUS-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.
Beschreibung der Steuereinheit
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 untergebracht 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 6 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 Ein-/ Ausgabe-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.
Die Pricritä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 Instruktionsfolgen ablaufen, muß auch eine Priorität zwischen den verschiedenen Instruktionsfolgen durch die Auswahleinheit 64 gelöst werden sowie auch zwischen den verschiedenen Ein-/Ausgabeeinheiten S. 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 ist 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, 6 B und 6 C 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, weiche 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 Prioritä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 Inter-Steuereinheit-Prioritätssystem, welches oben beschrieben wurde. Zum Beispiel kann die
ίο höchste Priorität den Ein-/Ausgabe-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-Adressenregisters 66 über die Inter-Steuereinheiten-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-Adressenregisters 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 Speicherfolgercgister 82 gebracht. Das Speicherfoigeregister 82 empfängt den Teil der Adresseninformationen, welcher zur Auswahl der betreffenden Speichermodule 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 Haupt-Speicherzugriffs 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 Ein-/Ausgabeeinheiten 5, welche mit der betreffenden Steuereinheit 6 verbunden sind, adressiert werden darf. Der Vergleicher 91 gestattet einen Vergleich des Inhalts des Steueradressenregisters 72 mit der im Konfigurationssteuerregister 90 gespeicherten Information.
e,5 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ünschten 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.
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-Daten-EIN-Register 94 nimmt die vom Pufferspeicher 2 über die Sammelleitung 3 ausgelesenen Daten auf. Die Aussendeverriegelungsschaltung92 und das Steuereinheit-Daten-EIN-Register 94 sind mit dem Hauptspeicher 9 über die Sammelleitung 8 verbunden. Das Steuereinheit-Daten-AUS-Register 221 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.
Beschreibung der Funktionsweise
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 sich die gewünschten Daten im Speicher 200 befinden und gültig sind, was durch 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. Das heißt, die Daten, die bereits vorher zum Speicherausgangsregister 201 gleichzeitig mit der Vergleichsoperation der 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 Abrufanordnung 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 Fi g. 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 abhä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ätseinheit70 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 Steueradressenregistern 72 gleiche Informationen zum Zwecke der Bestimmung der Notwendigkeit der Aussendung zu den mit den einzelnen Steuereinheiten 6 verbundenen Prozessoren 1 gespeichert. Zugleich mit dieser Operation wird der Inhalt des ausgewählten Inter-Steuerungs-Adressenre-
w gisters 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 Konfigurationssteuerregisters 90 im Vergleicher 91 verglichen, um zu bestimmen, ob die ausgewählte Adresse kri Pufferspeicher 2 anwesend sein kann. Wenn ein positiver Vergleich gefunden wird, wird der Inhalt des Steueradressenregisters 72 zum Prozessor 1, fur 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 gela-
den. 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, weiche 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 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-Daten-EIN-Register 94 in der Steuereinheit 6 bringt.
Die obengenannten 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 Speicheroperation in einen Schreib Vorgang um. Wenn der Hauptspeicher 9 feststellt, daß eine Aussendeverriegelungsschaltung 92 gesetzt wurde, veranlaßt er einen Speicherzyklus und bringt die Daten vom Steuereinheit-Daten-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 Steuereinheit-Daten-AUS-Register 221 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-Abrufanordnung ausgelesen worden wären. Die Steuereinheit 6 bringt dann den Inhalt ihres Daten-AUS-Registers 221 zum dazugehörigen Prozessor 1 ü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 zwichen dem Prozessor einerseits und dem Hauptspeicher und den anderen Steuereinheiten andererseits dar. Die Steuereinheit untersucht alle anstehenden Anforderungen für einen Speicherzugriff. Eine Prioritätseinrichtung erster Ordnung wählte 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 I esezyklus 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 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 Speicherzyklus notwendig zu machen.
Für die Informationsaussendung gelten folgende Regeln:
1. Alle Ein-/Ausgabespeicherzugriffe werden aus-
gesendet.
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 Ablanfeinrichtungen 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 übertragen. Bei diesen Operationen werden die bestehenden Hauptspeichersammelleitungen 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.
Hierzu 3 Blatt Zeichnungen

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 die Pufferspeicher, in denen Kopien bestimmter Datenblöcke des Hauptspeichers gespeichert sind, dadurch gekennzeichnet, daß in jeder Steuereinheit (6) ein Inter-Steuerungs-Adressenregister (66) zur Aufnahme von Hauptspeicherariforderungen des zugehörigen Prozessors (1) vorgesehen ist, welches über eine Inter-Steuerungs-Prioritätseinheit (70) mit einem Steueradressenregister (72) verbunden ist, wobei letztere auch Hauptspeicheranforderungen anderer Prozessoren empfangen kann, daß die Anforderungsinformation weiter zu einem Aussendeadressenregister (206) in jedem Pufferspeicher (2) übertragen wird, das mittelbar die Bestimmung der Art der durchzuführenden Speicheroperation und der dazugehörigen Adressen ermöglicht derart, daß, wenn die gewünschten Daten in gegenüber dem Hauptspeicherinhalt modifizierter Form in irgendeinem anderen Pufferspeicher vorhanden sind, statt einer Hauptspeicherleseoperation die modifizierten Daten von dem genannten Pufferspeicher in den Hauptspeicher und zugleich 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 Ein-/Ausgabeeinheiten (5) über das Register (69) oder vom betreffenden Prozessor (1) über das Register (61) vorgesehen ist, welcher eine Information über die adressierte Hauptspeicherstelle und die gewünschte Operation liefert, daß ein Speicher-Belegt-Verzeichnis (62), welches die gerade belegten Speicherbereiche angibt und Zugriffe zu solchen belegten Bereichen vermeidet, vorgesehen ist und daß der Ausgang dieses Verzeichnisses mit einer Intra-Steuerungs-Priorität- und Auswahleinheit (64) verbunden ist, welche eine Priorität zwischen Ein-/Ausgabeeinheiten (5) zwischen dem dazugehörigen Prozessor und zwischen mehreren, gleichzeitig in diesem Prozessor ablaufenden Instruktionsfolgen 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.
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.
DE2226382A 1971-09-10 1972-05-31 Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern Expired DE2226382C3 (de)

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 DE2226382A1 (de) 1973-03-15
DE2226382B2 DE2226382B2 (de) 1979-12-13
DE2226382C3 true 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)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1354827A (en) * 1971-08-25 1974-06-05 Ibm Data processing systems
US3723976A (en) 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
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
JPS5849945B2 (ja) * 1977-12-29 1983-11-08 富士通株式会社 バツフア合せ方式
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
AU543278B2 (en) * 1979-12-14 1985-04-18 Honeywell Information Systems Incorp. Cache clearing in multiprocessor system
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
EP0051745B1 (de) * 1980-11-10 1988-01-27 International Business Machines Corporation Pufferspeicherhierarchie für ein Multiprozessorsystem
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
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation 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
US5371874A (en) * 1989-01-27 1994-12-06 Digital Equipment Corporation Write-read/write-pass memory subsystem cycle
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
US5210848A (en) * 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
EP0450052A1 (de) * 1989-10-17 1991-10-09 MITCHELL, Maurice E. Rechner mit abgeschalteter offener unabhängiger doppelspeicherarchitektur
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
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
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
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 株式会社日立製作所 記憶システム及び記憶制御装置
US7219201B2 (en) * 2003-09-17 2007-05-15 Hitachi, Ltd. Remote storage disk control device and method for controlling the same
JP4598387B2 (ja) * 2003-09-17 2010-12-15 株式会社日立製作所 記憶システム
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

Also Published As

Publication number Publication date
GB1387043A (en) 1975-03-12
JPS4838036A (de) 1973-06-05
JPS5149535B2 (de) 1976-12-27
FR2155203A5 (de) 1973-05-18
IT953791B (it) 1973-08-10
CA954231A (en) 1974-09-03
DE2226382A1 (de) 1973-03-15
SE426110B (sv) 1982-12-06
US3771137A (en) 1973-11-06
DE2226382B2 (de) 1979-12-13

Similar Documents

Publication Publication Date Title
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE2241257C3 (de) Datenverarbeitende Anlage
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE3151745C2 (de)
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE2227882C2 (de) Virtuelle Speicheranordnung
DE3011552C2 (de)
DE2260353C2 (de) Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage
DE3131341C2 (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
DE2154106A1 (de) Arbeitsspeicherwerk
DE2231146B2 (de) Datenverarbeitungsanlage mit virtueller Adressierung
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE3724730A1 (de) Cache-steuereinrichtung
DE3502147C2 (de)
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE112018002032T5 (de) Gemeinsames nutzen von virtuellen und realen übersetzungen in einem virtuellen cache
DE69726795T2 (de) Kodierungsverfahren des Verzeichnisstatus in einem gemeinsamen, verteilten Speichersystem mit koherenten Pufferspeichern
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache
DE3919802A1 (de) Speicherbaustein mit vektorprozessoren und einem skalarprozessor
CH495584A (de) Datenverarbeitungsanlage
DE3832758A1 (de) Computerisierte arbeitsstation

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