DE3439302C2 - - Google Patents

Info

Publication number
DE3439302C2
DE3439302C2 DE3439302A DE3439302A DE3439302C2 DE 3439302 C2 DE3439302 C2 DE 3439302C2 DE 3439302 A DE3439302 A DE 3439302A DE 3439302 A DE3439302 A DE 3439302A DE 3439302 C2 DE3439302 C2 DE 3439302C2
Authority
DE
Germany
Prior art keywords
request
address field
address
buffer
processor
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
DE3439302A
Other languages
English (en)
Other versions
DE3439302A1 (de
Inventor
Kenichi Odawara Jp Shiozaki
Kanji Hadano Jp Kubo
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3439302A1 publication Critical patent/DE3439302A1/de
Application granted granted Critical
Publication of DE3439302C2 publication Critical patent/DE3439302C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

Landscapes

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

Description

Die Erfindung betrifft eine Speichersteuerungsvorrichtung gemäß dem Oberbegriff des Anspruchs 1.
Ein Datenverarbeitungssystem liest Daten, wie Befehle und Operanden aus dem Hauptspeicher aus und verarbeitet sie. Der Hauptspeicher weist eine große Speicherkapazität und eine im Vergleich mit der Verarbeitungsgeschwindigkeit des Prozessors lange Zugriffszeit auf. Folglich kann ein be­ nötigter Datenposten in der nachfolgend beschriebenen Weise mit höherer Geschwindigkeit zur Verfügung gestellt werden.
Ein Prozessor weist dazu einen Pufferspeicher auf, der im Vergleich mit dem Hauptspeicher eine geringere Kapazität und eine größere Zugriffsgeschwindigkeit hat, und der Prozessor greift zum Pufferspeicher zu, in dem eine Kopie der­ jenigen Daten aus dem Hauptspeicher steht, die häufiger ge­ braucht werden. Indem auf das als Inhaltsverzeichnis vorge­ sehene Pufferadreßfeld zurückgegriffen wird, wird ent­ schieden, ob das benötigte Datum im Puffer steht (Im-Puffer- Zustand) oder nicht (Nicht-Im-Puffer-Zustand).
In einem Multiprozessorsystem, das mehrere Prozessoren auf­ weist, die solche Pufferspeicher haben und gemeinsam den Hauptspeicher nutzen, tritt ein Konflikt zwischen den Daten­ posten im Pufferspeicher und dem Hauptspeicher auf, falls ein Prozessor einen unter einer gegebenen Adresse im Haupt­ speicher gespeicherten Datenposten auffrischt bzw. fort­ schreibt und falls dieser Datenposten im Pufferspeicher eines weiteren Prozessors steht.
Aus der US-PS 36 18 040 ist ein Multiprozessorsystem bekannt, in dem der Hauptspeicher gemeinsam von mehreren Prozessoren, die jeweils Pufferspeicher haben, genutzt wird. Bei diesem bekannten Multiprozessorsystem wird eine Speicheradresse unter der ein Datenposten abzuspeichern ist, den anderen Prozessoren gemeldet, die dann ein Pufferadreßfeld abfragen und bestimmen, ob die gemeldete Adresse bereits in das Pufferadreßfeld einge­ tragen ist. Falls dies so ist, wird die eingetragene Adresse gelöscht.
Aus der US-PS 40 56 844 ist bekannt, daß das obengenannte Pufferadreßfeld aus einem ersten Adreßfeld und einem zweiten Adreßfeld besteht, die beide dieselben Daten speichern. Auf eine von einem anderen Prozessor gemeldete Adresse wird auf deren Eintrag im zweiten Adreßfeld geprüft. Dadurch wird eine Blockierung des Zugriffs des betrachteten Prozessors zum ersten Adreßfeld wegen des Zugriffs zum gleichen Adreßfeld auf die Meldung der Adresse des anderen Prozessors hin, ver­ mieden.
Die ersten und zweiten Adreßfelder werden wie folgt aufge­ frischt. Wenn das Datum auf eine angeforderte Adresse im Pufferspeicher nicht steht und ein Datenblock (beispielsweise 64 Byte) an Stellen, die die angeforderte Adresse enthalten, durch einen Blocktransfer vom Hauptspeicher zum Puffer­ speicher ersetzt wird, wird die Adresse des ersetzten Daten­ blocks registriert, und wenn der Pufferspeicher von einem an­ deren Prozessor gemeldete Adreßdaten enthält, wird die regi­ strierte Adresse gelöscht (ungültig gemacht).
Üblicherweise werden die erste Steuertabelle (Adreßfeld) und die zweite Steuertabelle (Adreßfeld) in der folgenden Weise aktualisiert.
  • 1. Für einen Blocktransfer wird eine Fortschreibeanforderung für das erste Adreßfeld ausgegeben, wenn der Datentransfer vom Hauptspeicher zum Pufferspeicher beendet ist, während eine Anforderung zum Fortschreiben des zweiten Adreßfelds ausgegeben wird, sobald eine Lese(Hol)-Anforderung an den Hauptspeicher ausgegeben wird. Gemäß dieser Ausführungen werden das erste und das zweite Adreßfeld unabhängig voneinander aktualisiert.
  • 2. Wenn ein anderer Prozessor in den Hauptspeicher einspei­ chert, wird eine Fortschreibeanforderung zuerst an das zweite Adreßfeld ausgegeben, sobald eine Einspeicheran­ forderung an den Hauptspeicher ausgegeben wird; danach wird das erste Adreßfeld fortgeschrieben.
  • 3. Wenn sich die unter 1. und 2. beschriebenen Fortschreibe­ vorgänge stören, wird das erste Adreßfeld ohne Rücksicht auf die Verarbeitungsfolge für den Hauptspeicher fortge­ schrieben, während das zweite Adreßfeld entsprechend der Zugriffsfolge zum Hauptspeicher fortgeschrieben wird.
Beim herkömmlichen System ergeben sich folgende Schwierig­ keiten. Beispielsweise führen in einem Programm, in dem der andere Prozessor eine Speicheranforderung in der Reihenfolge Adresse X und Adresse Y an einen Hauptspeicher, der mit dem anderen System verkehrt, ausgibt und der eigene Prozessor Daten an der Adresse X nach der Betätigung, daß der andere Prozessor das Datum an der Adresse Y aktualisiert hat, holt (in diesem Programm wird natürlich angenommen, daß das Datum an der Adresse X bereits aktualisiert ist, wenn das Fort­ schreiben an der Adresse Y beendet ist), der andere Prozessor die Speicheroperation zuerst an der Adresse X und dann an der Adresse Y aus, wohingegen der eigene Prozessor zuerst das Datum der Adresse Y und dann das Datum der Adresse X ausliest. Für eine Ausleseanforderung des eigenen Prozessors wird mittels des ersten Adreßfeldes geprüft, ob das betrach­ tete Datum bereits im Pufferspeicher steht. Falls dies so ist, wird das Datum aus dem Pufferspeicher ausgelesen und andernfalls ein Blocktransfer vom Hauptspeicher zum Puffer­ speicher ausgeführt. Falls die Anforderung des anderen Pro­ zessors für das Abspeichern an der Adresse Y des Haupt­ speichers in diesem Fall beendet ist, gibt der eigene Prozes­ sor eine Anforderung zum Auslesen der an der Adresse X gespeicherten Daten, nachdem der Blocktransfer beendet ist, aus. Somit wird im ersten Adreßfeld geprüft, ob die betrach­ teten Daten im Pufferspeicher stehen. Falls das Löschen der Daten des zweiten Adreßfeldes aufgrund der Speicheranforderung für das Speichern an der Adresse X des Hauptspeichers vom anderen Prozessor verzögert wurde und noch nicht ausgeführt ist, bleibt die X-Adresse, die zuvor in das erste Adreßfeld eingetragen wurde unverändert, und somit liest der eigene Prozessor die Daten aus dem Pufferspeicher. Die ausgelesenen Daten enthalten jedoch eine alte Information, d. h., daß der eigene Prozessor einen ungültigen Datenposten erhalten hat.
Um solch ein Auslesen ungültiger Datenposten zu vermeiden, werden üblicherweise folgende Verfahren angewendet. Zwischen dem Auslesevorgang bei der Y-Adresse und dem Auslesevorgang bei der X-Adresse wird ein Befehl zur seriellen Verarbeitung eingefügt, um das Ende der durch eine Speicheranforderung des anderen Prozessors hervorgerufenen ungültigen Operation für den Pufferspeicher festzustellen, oder es wird im eigenen Prozessor verhindert, daß dieser zum Pufferspeicher zugreift, wenn eine ungültige Operation aufgrund des zweiten Adreßfelds und des ersten Adreßfelds (falls durch Prüfen des zweiten Adreßfelds festgestellt wird, daß die Daten eingetragen sind) aufgrund einer Speicheranforderung vom anderen Prozessor, der in den Hauptspeicher Daten einspeichern will, ausgeführt wird. Die zuerst genannte Methode bedeutet jedoch eine Ein­ schränkung des Programmierers und der eingeführte Befehl zur seriellen Verarbeitung verringert die Leistungsfähigkeit, wohingegen die zweite Methode ebenfalls die Leistungsfähigkeit verringert, weil die Zugriffsoperation zum Pufferspeicher unbedingt ver­ hindert wird.
Es ist deshalb Aufgabe der Erfindung, eine Speichersteuerungs­ vorrichtung zu ermöglichen, die eine ungültige Operation ver­ hindern kann, die wegen einer zeitweisen Dateninkonsistenz zwi­ schen Pufferspeicher und dem gemeinsam genützten Hauptspeicher in Verbindung mit der Fortschreibeoperation der ersten und zwei­ ten Adreßfelder auftritt, und die auch die Verzögerung des Fortschreibevorgangs des ersten und zweiten Adreßfeldes auf­ grund einer Adreßmeldung vom anderen Prozessor in bezug auf eine Leseanforderung vom eigenen Prozessor verhindern kann.
Die Lösung der obigen Aufgabe erfolgt bei einer gattungsgemäßen Speichersteuerungsvorrichtung erfindungsgemäß durch die im kennzeichnenden Teil des Anspruchs 1 angegebenen Merkmale.
Der Anspruch 2 kennzeichnet eine vorteilhafte Weiterbildung davon.
Die Erfindung wird im folgenden anhand der Zeichnung näher beschrieben. Es zeigt
Fig. 1 ein Blockschaltbild eines erfindungsgemäßen Aus­ führungsbeispiels;
Fig. 2 ein Blockschaltbild von Einzelheiten einer in Fig. 1 dargestellten Steuereinrichtung für das zweite Adreßfeld;
Fig. 3 ein Blockschaltbild von Einzelheiten einer in Fig. 1 dargestellten Steuereinrichtung für das erste Adreßfeld;
Fig. 4 ein Zeitdiagramm, das Operationen des herkömmlichen Systems erläutert; und
Fig. 5 ein Zeitdiagramm, das Operationen des Ausführungs­ beispiels gemäß den Fig. 1 bis 3 erläutert.
In Fig. 1 ist ein Blockschaltbild eines Ausführungsbeispiels gemäß der Erfindung dargestellt. Ein Hauptspeicher (MS) 3 wird gemeinsam von zwei Prozessoren 1 a und 1 b über eine Speichersteuereinheit (SCU) 2 genutzt. Der Prozessor 1 b ist mit dem Prozessor 1 a identisch und die auf ihn bezogenen Bezugsziffern erhalten den Buchstaben b. Von ihm sind keine Einzelheiten dargestellt.
Der Prozessor 1 a weist eine (nicht dargestellte) Befehlsver­ arbeitungseinheit (IPU) auf, die über eine Leitung 10 a an eine erste Steuereinrichtung 4 a Lese- oder Schreibzugriffsan­ forderungen aussendet. Die erste Steuereinrichtung 4 a weist ein erstes Pufferadreßfeld (BAA) 5 a auf, das dasselbe sein kann, wie es in der US-PS 40 56 844 beschrieben ist.
Die erste Steuereinrichtung 4 a prüft auf eine Zugriffsanfor­ derung auf der Leitung 10 a hin das BAA 5 a und ermittelt, ob die benötigten Daten im Pufferspeicher (BS) 6 a stehen. Wenn die Daten gelesen sind, überträgt sie der BS 6 a über eine Leitung 12 a zur IPU. Falls die angeforderten Daten nicht vorhanden sind (nicht im BS-Zustand) gibt die erste Steuereinrichtung 4 a eine Leseanforderung über eine Leitung 13 a an die SCU 2 aus, um Daten aus dem MS 3 auszulesen. Die zuvor beschriebenen Operationen werden im weiteren Blocktrans­ fer bezeichnet. Eine über die Leitung 13 a empfangene Block­ transferanforderung wird mit einer MS-Anforderung von ande­ ren Prozessoren (einschließlich Eingabe/Ausgabeeinheiten) für den Zugriff zum MS 3 in der SCU 2 verglichen. Falls die Leitung 13 a eine höhere Priorität hat, wird über eine Leitung 14 an den MS 3 eine Blocktransferanforderung ausgegeben. Nach dem Empfang dieser Anforderung überträgt der MS 3 einen Datenblock über eine Leitung 15 a zum BS 6 a, der den Daten­ block abspeichert und gleichzeitig die Zieldaten über eine Leitung 12 a der IPU überträgt.
Die SCU 2 ist mit einer Leitung 16 a mit der ersten Steuer­ einrichtung 4 a verbunden, die als Vorsignalleitung verwendet wird und einen Blocktransfer vom MS 3 zum BS 6 a anzeigt.
Die SCU 2 ist mit einer zum Prozessor 1 a gehörigen zweiten Steuereinrichtung 7 a und mit einer zum Prozessor 1 b gehörigen zweiten Steuereinrichtung 7 b verbunden. Die Steuereinrichtun­ gen 7 a und 7 b weisen jeweils zweite Pufferadreßfelder 8 a und 8 b auf, die ebenfalls Frontadreßfelder (FAA) heißen. Das FAA 8 a kann mit dem aus der US-PS 40 56 844 bekannten identisch sein.
Wenn ein Blocktransfer vom MS 3 zum BS 6 a des Prozessors 1 a ausgeführt ist, wird die für den Blocktransfer gültige Adresse, die von der SCU 2 der zweiten Steuereinrichtung 7 a übertragen wird, eingetragen. Wenn das FAA 8 a in Verbindung mit dem Blocktransfer fortgeschrieben wird (die Adresse wird ersetzt), gibt die zweite Steuereinrichtung 7 a über eine Leitung 19 a der ersten Steuereinrichtung 4 a eine Mitteilung zum Eintragen der für den Blocktransfer gültigen Adresse (das ist eine Aktualisierungsanforderung). Nach Beendigung des Blocktransfers und wenn die Bedingungen für die Aktualisierungsanforderung erfüllt sind, schreibt die erste Steuereinrichtung 4 a den In­ halt des BAA 5 a fort. Folglich speichern das BAA 5 a und das FAA 8 a dieselben Daten.
Andererseits wird, sobald eine Hauptspeicheranforderung vom anderen Prozessor 1 b über eine Leitung 13 b von der SCU 2 aus­ gewählt wird, eine Lese- oder Schreibanforderung von der SCU 2 dem MS 3 über die Leitung 14 in derselben zuvor beschriebenen Weise ausgegeben. Auf eine Leseanforderung hin werden die vom MS 3 ausgelesenen Daten über eine Leitung 15 b zum anderen Prozessor 1 b, der die Leseanforderung ausgegeben hat, über­ tragen. Wenn der Prozessor 1 b eine Schreibanforderung aus­ gibt, werden die von der Leitung 14 empfangenen Daten in den MS 3 eingeschrieben und die SCU 2 gibt gleichzeitig eine Schreibadreß-Prüfanforderung über eine Leitung 18 a an die zweite Steuereinrichtung 7 a des Prozessors 1 a aus. Auf den Empfang der Schreibadreß-Prüfanforderung hin prüft die zweite Steuereinrichtung 7 a, ob die relevante Adresse im FAA 8 a steht. Falls dies so ist, wird die im betrachteten Bereich des FAA 8 a gespeicherte Information ungültig gemacht (das heißt, der Adreßeintrag wird gelöscht) und gleichzeitig eine Löschanforderung für das BAA 5 a über die Leitung 19 a zur ersten Steuereinrichtung 4 a ausgegeben. Auf den Empfang der Löschanforderung von der Leitung 19 a macht die Steuerein­ richtung 4 a den betreffenden Bereich des BAA 5 a ungültig.
Die im Ausführungsbeispiel auszuführenden Operationen des BAA 5 a und FAA 8 a sind zuvor im einzelnen beschrieben worden. Die auf der Seite des Prozessors 1 b auszuführenden Operationen sind genau dieselben wie beim Prozessor 1 a. Der Prozessor 1 b kann ein Eingabe/Ausgabe-Prozessor (IOP) sein, der keinen Pufferspeicher zur Steuerung der Eingabe/Ausgabevorrichtungen aufweist. In einer solchen Konfiguration enthält der Pro­ zessor 1 b weder die erste Steuereinrichtung 4 b noch die zweite Steuereinrichtung 7 b.
Fig. 2 stellt im einzelnen die zweite Steuereinrichtung 7 a von Fig. 1 dar. Die von der SCU 2 ausgegebenen FAA Fort­ schreibeanforderungen werden in einem Anforderungsstapel 50 in der Reihenfolge ihres Empfangs gestapelt. Für eine Block­ transferanforderung vom eigenen Prozessor 1 a wird eine Adresseneintragsmeldung zusammen mit einer Adresse für den Blocktransfer über die Leitung 17 a an das FAA 8 a übertragen. Für eine Schreibanforderung vom anderen Prozessor 1 b zum Dateneinschreiben in den MS 3 wird eine Speicheradressen­ anforderung zusammen mit einer Speicheradresse über die Leitung 18 a ausgegeben. Der Anforderungsstapel 50 wird im "first-in first-out"-Verfahren betrieben, das heißt, daß die Datenposten in der Reihenfolge ihres Empfangs gestapelt und ausgelesen werden. Das heißt, daß die Ausleseoperation einer Anforderung, die im Anforderungsstapel 50 steht, nach dem mehrere Anforderungen bereits gestapelt sind, erst dann ausgeführt wird, nachdem die anderen Anforderungen bereits ausgelesen sind. Falls die vom Stapel 50 geholte Anforderung ein Eintragsbefehl wegen eines Blocktransfers ist, wird eine Ersetzanforderung über eine Leitung 56 an das FAA 8 a aus­ gegeben und gleichzeitig in ein Eintragsanforderungsregister 58 gesetzt. Im FAA 8 a wird die alte Adresse durch die zusam­ men mit der Ersetzanforderung empfangene Adresse ersetzt. Die Eintragsanforderung und die Adresse, die im Register 58 zwischengespeichert sind, werden in einem Lösch/Ersatzstapel 53 über ein ODER-Glied 59 gestapelt. Das herkömmliche System ist nicht so aufgebaut, daß die Eintragsanforderung von der zweiten Steuereinrichtung 7 a zur ersten Steuereinrichtung 4 a geleitet wird.
Falls die vom Anforderungsstapel 50 ausgegebene Anforderung für die Speicheradreßprüfung ist, wird dem FAA 8 a eine Zugriffs­ meldung über eine Leitung 54 zugeführt, die gleichzeitig in ein Löschanforderungsregister 51 gesetzt wird. Das FAA 8 a prüft, ob die zusammen mit der Zugriffsmeldung empfangene Adres­ se im FAA 8 a steht. Wenn die Adresse gefunden ist, gibt das FAA 8 a ein FAA-Erkennungssignal an eine Leitung 57 aus. Dieses Signal gibt ein UND-Glied 52 frei, so daß die Löschanforderung und die Adresse im Lösch/Ersatzstapel 53 gestapelt werden. Gleichzeitig wird der Ausgang des UND-Glieds 52 als eine Lösch­ anforderung im Anforderungsstapel 50 gespeichert und als Löschanforderung der FAA 8 a über eine Leitung 55 vom Stapel 50 zugeführt.
In Fig. 3 sind Einzelheiten der in Fig. 1 dargestellten ersten Steuereinrichtung 4 a dargestellt. In Fig. 3 wird eine Speicherzugriffsanforderung von der IPU über die Leitung 10 a einem UND-Glied 21 angelegt. Gemäß einer weiter unten folgenden Beschreibung wird die Speicherzugriffsanforderung von der IPU über das UND-Glied 21 einer Prioritätsschaltung 22 übertragen, falls ein Flip-Flop 26 seinen Normalzustand annimmt. Ein Setzausgangssignal von einem später beschrie­ benen Flip-Flop 29 wird der Prioritätsschaltung 22 zugeführt. Abhängig von der Bedingung wird einer dieser Eingänge ange­ nommen. Für die Prioritätsschaltung 22 hat das Setzausgangs­ signal des Flip-Flops 29 Vorrang. Folglich nimmt die Priori­ tätsschaltung 22 eine Zugriffsanforderung von der IPU an, wenn das Flip-Flop 29 im rückgesetzten Zustand ist. Auf den Empfang der Zugriffsanforderung von der IPU hin gibt die Prioritätsschaltung 22 eine Bezugsanzeige über eine Leitung 39 an das BAA 5 a. Zusammen mit der Bezugsanzeige wird die Adresse für die Zugriffsanforderung von der IPU dem BAA 5 a eingegeben, das daraufhin prüft, ob die Adresse eingetragen ist. Falls festgestellt wird, daß der "Im-BS"-Zustand gesetzt wurde, wird zum BS für eine Lese- oder Schreiboperation zugegriffen, wie dies in Fig. 1 dargestellt ist. Falls für eine Leseanforderung auf einer Leitung 41 ein Signal "Nicht im BS" auftritt, wird ein Signal, das den "Nicht im BS"- Zustand anzeigt, über eine Leitung 42 vom BAA 5 a abgegeben, das das UND-Glied 23 öffnet, so daß ein Blocktransfer der SCU 2 über die Leitung 13 a mitgeteilt wird. Gleichzeitig wird das Flip-Flop 26 gesetzt und das UND-Glied 21 gesperrt, womit die folgende Zugriffsanforderung von der IPU blockiert wird. Falls die Zugriffsanforderung von der IPU eine Schreib­ anforderung ist, wird ein Signal, das die Schreibanforderung mitteilt, über eine Leitung 43 ausgegeben, sobald die Zugriffs­ meldung zur Leitung 39 übertragen ist. Beim Zustand "Im BS" werden die Schreibdaten von der IPU in den BS 6 a und den MS 3 eingespeichert. Beim Zustand "Nicht im BS" wer­ den die Schreibdaten nur in den MS 3 eingespeichert. In einem System, bei dem der "store-in-BS"-Aufbau angewendet wird, werden im Zustand "Im-BS" die Daten in den BS 6 a eingeschrieben und nur die Adresse für die Löschanforderung der SCU 2 übertragen, wodurch diese Adresse den anderen Prozessoren gemeldet werden kann.
Wenn von der SCU 2 auf eine Blocktransferanfrage hin ein Blocktransfer-Vorsignal über die Leitung 16 a zurückgegeben wird, wird das Vorsignal durch einen Zähler 24 gezählt. Das heißt, daß ein Blocktransfer nach mehreren Übertragungs­ vorgängen beendet ist. Beispielsweise erfordert ein 64-Byte- Blocktransfer vier 16-Byte-Datenübertragungsvorgänge. Ein Vorsignal wird immer, wenn die Datenübertragung ausgeführt wird, geliefert. Mit der Annahme, daß ein Blocktransfer vier Datenübertragungsoperationen erfordert und vier Vor­ signale zurückgegeben werden, wird mit einem Ausgang des Zählers 24 ein Blocktransferende-Flip-Flop 25 gesetzt.
Weil die SCU 2 eine Eintragsmeldung an die zweite Steuer­ einrichtung 7 a gleichzeitig mit der Blocktransferoperation, wie sie oben beschrieben wurde, ausgibt, wird diese Ein­ tragsmeldung (Ersatzanforderung) über die Leitung 19 a von der zweiten Steuereinrichtung 7 a zur ersten Steuereinrich­ tung übertragen, wenn das Fortschreiben des FAA 8 a beendet ist. Eine Lösch- oder Ersatzanforderung wird durch ein Sig­ nal einer Leitung 45 gekennzeichnet. Durch eine Ersatzan­ frage wird das Flip-Flop 29 gesetzt und falls das Signal auf der Leitung 45 "1" ist, wird in diesem Fall auch ein Flip-Flop 35 gesetzt. Ein Setzausgang des Flip-Flops 29 geht über eine Leitung 30 und die Prioritätsschaltung 22 , und eine Ersatzanforderung geht über eine Leitung 37 über UND-Glieder 31 und 32 zum BAA 5 a. Zur gleichen Zeit wird ein Ausgang des UND-Glieds 31 über ein Register 36 zum Flip-Flop 29 übertragen, wodurch das Flip-Flop 29 zurück­ gesetzt wird. Falls über die Leitung 37 eine Ersatzanforde­ rung an das BAA 5 a ergeht, wird gleichzeitig ein Flip-Flop 28 gesetzt. Mit dem vom Flip-Flop 25 gelieferten Setzaus­ gang, der das Ende des Blocktransfers mitteilt, wird ein UND-Glied 27 geöffnet; das Flip-Flop, das einen Blocktransfer anforderte, wird zurückgesetzt, und das UND-Glied 21 wird zur Annahme der folgenden Speicherzugriffsanforderungen freigegeben. Die Flip-Flops 25 und 28 werden nach einer vorgegebenen Zeitdauer durch ein Register 40 zurückgesetzt.
Im Stand der Technik wird das Flip-Flop 26 gesetzt, wenn eine Blocktransfer-Anforderung zur SCU 2 übertragen wird, und das Ende des Blocktransfers wird durch den Zähler 24 ange­ zeigt. Wenn der Blocktransfer beendet ist, wird das Flip- Flop 26 zurückgesetzt, damit die folgende Speicherzugriffs­ anforderung empfangen werden kann und gleichzeitig wird eine Eintragsmeldung dem BAA 5 a geliefert, das heißt, die Fort­ schreibeoperation für das BAA 5 a und das FAA 8 a erfolgen asynchron.
Eine Löschanforderung für das BAA 5 a wird in Verbindung mit der Schreibadreßprüfung für eine Schreibanforderung vom ande­ ren Prozessor über die Leitung 19 a von der zweiten Steuerein­ richtung 7 a übertragen. Diese Löschanforderung setzt das Flip-Flop 29. Die Unterscheidung Lösch- oder Ersatzanforderung wird mittels eines Signals auf einer Leitung 45 getroffen. Das Signal auf der Leitung 45 ist für eine Löschanforderung "0", und das Flip-Flop 35 wird zurückgesetzt. Ein Ausgang des Flip-Flops 29 geht über die Leitung 30 und die Prioritäts­ schaltung 22, so daß eine Löschanforderung der BAA 5 a über die UND-Glieder 31, 32 und 33 eingegeben wird. Gleichzeitig geht das Ausgangssignal des UND-Glieds 31 über ein Register 36 und setzt das Flip-Flop 29 zurück.
Um einen besseren Einblick in die Operation zu schaffen, ist in Fig. 4 ein Zeitdiagramm von Zugriffs- und Fortschreibe­ operationen, die mit dem BAA und FAA auszuführen sind, gemäß dem Stand der Technik dargestellt. In diesem Diagramm stellen ST, F, STX und FX jeweils eine Schreibanforderung, eine Lese­ anforderung, eine Schreibanforderung für Adresse X und eine Leseanforderung für Adresse X dar. Wie zuvor beschrieben, stellt Fig. 4 ein Zeitdiagramm vom eigenen Prozessor für einen Verarbeitungsfluß, bei dem der andere Prozessor STX und STY anfordert und der eigene Prozessor FY und FX an­ fordert, dar. Der andere Prozessor gibt die Anforderungen für STX und STY zu den Zeitpunkten T 0 und T 1 aus. Diese Anforderungen bewirken jeweils eine Schreibanforderung an das MS. Die zweite Steuereinrichtung des eigenen Prozessors greift zum FAA mittels der Adresse X zum Zeitpunkt T 2 zu. Für ein Signal "Im FAA" wird die in der FAA eingetragene Adresse X zum Zeitpunkt T 3 gelöscht und gleichzeitig im Löschstapel gestapelt. Für die SSTY-Anforderung ist der Zu­ stand "Nicht-im FAA" eingetragen, obwohl zum Zeitpunkt T 4 zum FAA zugegriffen wird. Wenn der eigene Prozessor eine FY-Anforderung ausgibt, wird zum BAA zum Zeitpunkt T 3 zugegriffen. Da das System im Zustand "Nicht im BS" ist, wird ein Blocktransfer für vier Zyklen beginnend vom Zeitpunkt T 4 eingeleitet. Eine Ersatzoperation im FAA wird zur ZeitT 5 ausgeführt. Im Stand der Technik wird eine FX-­ Anforderung, die der FY-Anforderung folgt zum Zeitpunkt T 8 angenommen und zum BAA zum Zeitpunkt T 9 zugegriffen, da eine Ersatzoperation im BAA eingeleitet wird und der folgen­ de Zugriff erst empfangen werden kann, wenn ein Blocktransfer beendet ist. Auf diese Weise bleibt, falls ein STX im Lösch­ stapel und im Wartezustand wegen anderer zuvor gestapelter im Wartezustand befindlicher Anforderungen steht, bleibt beispiels­ weise bis zum Zeitpunkt T 12 die Adresse X im BAA eingetragen und der Zustand "Im BS" wird angezeigt. Somit wird ein alter Datenposten, der vor einem Schreibvorgang zum Zeitpunkt T 10 gespeichert wurde, gelesen.
Dagegen zeigt Fig. 5 ein Zeitdiagramm von Bezugs- und Fort­ schreiboperationen des BAA und FAA gemäß einer Ausführungs­ form der Erfindung unter denselben Bedingungen wie für das Zeitdiagramm in Fig. 4. Erfindungsgemäß erfolgen die Fort­ schreibeoperationen im BAA und FAA synchron und eine Bezugs­ operation zum BAA für die folgende Speicherzugriffsanforde­ rung des eigenen Prozessors wird verhindert, bis eine Ersatz­ operation im BAA für die vorangehende Speicherzugriffsan­ forderung beendet ist. Aus Fig. 5 kann man erkennen, daß eine Ersatzanforderung (T 5) für das FAA aufgrund einer einer FX-Anforderung vorangehender FY-Anforderung ebenfalls im Lösch/Ersatzstapel 53 gestapelt wird und daß die Adresse Y im BAA 5 durch eine von der FAA-Ersatzanforderung resultie­ renden Anforderung eingetragen wird. Die folgende FX-Anforde­ rung wird angenommen, wenn der Blocktransfer von FY beendet ist und die BAA-Ersatzoperation fertig ist. Folglich ist das Löschen der Adresse X zum Zeitpunkt T 12 beendet, so daß der Zustand "Nicht im BS" gemeldet wird, wenn zum BAA 5 a aufgrund der FX-Anforderung zum Zeitpunkt T 14 zugegriffen wird.
Als Ergebnis wird ein Blocktransfer vom Hauptspeicher ausge­ führt und neue durch den anderen Prozessor eingespeicherte Daten verarbeitet.
Die Operationen des Prozessors 1 a wurden anhand eines Ausfüh­ rungsbeispiels beschrieben. Die Operationen des Prozessors 1 b sind genau dieselben, wenn der Prozessor 1 a als der andere Prozessor betrachtet wird.
Obwohl der Hauptspeicher als gemeinsamer Speicher im Ausfüh­ rungsbeispiel dient, kann das System auch so aufgebaut sein, daß der Hauptspeicher von Fig. 1 durch einen Zwischen-Puffer­ speicher ersetzt wird und der Hauptspeicher eine höhere Systemhierarchie über dem Zwischen-Pufferspeicher einnimmt. Auf jeden Fall gibt die "Adresse" diejenige an, die dem Hauptspeicher zugeordnet ist.

Claims (2)

1. Speichersteuerungsvorrichtung für ein Datenverarbeitungs­ system mit
einem gemeinsamen Speicher (3), der gemeinsam von mehreren Prozessoren (1 a, 1 b) genutzt wird, wobei mindestens einer der Prozessoren (1 a) einen Pufferspeicher (6 a) aufweist, der eine Kopie eines Teils der im gemeinsamen Speicher (3) ge­ speicherten Daten enthält, wobei die Speichersteuerungsvor­ richtung in Verbindung mit dem einen Prozessor (1 a), der den Pufferspeicher (6 a) enthält, aufweist:
ein erstes Pufferadreßfeld (5 a), das Adressen von im Puffer­ speicher (6 a) gespeicherten Daten speichert und angibt, ob ein Datenposten für eine Zugriffsanforderung im eigenen Pro­ zessor im Pufferspeicher (6 a) steht oder nicht;
ein zweites Pufferadreßfeld (8 a), das dieselbe Adresse spei­ chert, wie sie im ersten Pufferadreßfeld (5 a) gespeichert ist;
eine Steuereinheit (4 a, 7 a), die den Inhalt des zweiten Puf­ feradreßfeldes (8 a) und den Inhalt des ersten Pufferadreßfel­ des (5 a) bei einem Blocktransfer von dem gemeinsamen Speicher (3) zum Pufferspeicher (6 a) des eigenen Prozessors (1 a) und bei einer Einspeicheroperation des anderen Prozessors (1 b) durch Ersetzen der Adresse fortschreibt, und dazu eine erste Adreßfeldsteuereinrichtung (4 a), die das Fortschreiben des ersten Pufferadreßfeldes (5 a) steuert und eine zweite Adreß­ feldsteuereinrichtung (7 a) aufweist, die den Zugriff zum zweiten Pufferadreßfeld (8 a) auf eine Einspeicheradreßprüf­ anforderung bei einer vom eigenen Prozessor (1 b) ausgeführten Einspeicheroperation in den gemeinsamen Speicher (3) steuert, und ein Löschen des Adreßeintrags der ersten Adreßfeldsteuereinrichtung (4 a) meldet, wenn eine Adresse für die Einspeicheroperation zuvor im zweiten Pufferadreßfeld (8 a) eingetragen ist und diese Adresse im zweiten Pufferadreßfeld (8 a) löscht, wobei die zweite Adreßfeldsteuereinrichtung (7 a) eine Einrichtung auf­ weist, die eine im zweiten Pufferadreßfeld (8 a) gespeicherte Adresse bei einer Blocktransferanforderung des eigenen Pro­ zessors (1 a) mittels einer Ersetzanforderung durch die zusammen mit der Ersetzanforderung empfangene Adresse ersetzt und der ersten Adreßfeldsteuereinrichtung (4 a) eine Ersetzmeldung aus­ gibt,
dadurch gekennzeichnet, daß das erste Pufferadreßfeld (5 a) eine Einrichtung (22) aufweist, die eine neue Zugriffsanforderung, die im eigenen Prozessor (1 a) auftritt, unter der Bedingung annimmt, daß der Block­ transfer zum eigenen Prozessor (1 a) beendet ist und daß der Inhalt des ersten Pufferadreßfeldes (5 a) bei dem Blocktransfer durch die Steuereinheit (4 a, 7 a) fortgeschrieben wurde, und die zweite Adreßfeldsteuereinrichtung (7 a) aufweist:
  • - einen Anforderungsstapel (50), der gemäß dem "first-in- first-out"-Prinzip die Einspeicheradreßprüfanforderung, die Ersetzanforderung und die Löschanforderung, die innerhalb der eigenen Adreßfeldsteuereinrichtung (7 a) auftreten, in der Reihen­ folge ihres Empfangs stapelt und eine Zugriffs-, Lösch- oder Ersetzmeldung dem zweiten Pufferadreßfeld (8 a) entsprechend einer vom Anforderungsstapel (50) ausgegebenen Anforderung ausgibt und
  • - einen Lösch-/Ersatzstapel (53), der gemäß dem "first-in- first-out"-Prinzip eine an die erste Adreßfeldsteuereinrichtung (4 a) aufgegebene Lösch- und Ersetzmeldung in der Reihenfolge ihres Empfangs stapelt, wobei
  • die zweite Adreßfeldsteuereinrichtung (7 a), wenn der Anfor­ derungsstapel (50) eine Schreibadressenprüfanforderung aus­ gibt, eine Löschmeldung im Lösch/Ersatzstapel (53) bei einer vom zweiten Pufferadreßfeld (8 a) ausgegebenen Meldung über die Anwesenheit einer zu der Schreibadressenprüfung gehöri­ gen Adresse und außerdem eine Löschmeldung im Anforderungs­ stapel (50) und wenn eine Ersetzanforderung vom Anforderungs­ stapel (50) ausgeht, eine Ersetzmeldung im Lösch/Ersatzstapel (53) stapelt.
2. Speichersteuerungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Adreßfeldsteuereinrichtung (4 a) aufweist:
eine Meldeeinrichtung (29), die eine Lösch- oder Ersetzmeldung auf eine Lösch- oder Ersetzmeldung von der zweiten Adreßfeldsteuerein­ richtung (7 a) an das erste Pufferadreßfeld (5 a) liefert,
eine Meldeeinrichtung (26), die meldet, daß ein Block­ transfer stattfindet,
eine Rücksetzeinrichtung (27), die beim Ende des Block­ transfers die von der Meldeeinrichtung (26) ausgegebene Blocktransfermeldung und eine Ersatzmeldung für das erste Pufferadreßfeld (5 a), die die Meldeeinrichtung (29) ausgegeben hat, zurücksetzt und
eine Einrichtung (21), die im eigenen Prozessor (1 a) ver­ hütet, daß dieser eine Zugriffsanforderung annimmt, solange die Meldeeinrichtung (26) einen Blocktransfer meldet.
DE19843439302 1983-10-27 1984-10-26 Speichersteuerungsvorrichtung Granted DE3439302A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58202004A JPS6093563A (ja) 1983-10-27 1983-10-27 バツフア記憶制御方式

Publications (2)

Publication Number Publication Date
DE3439302A1 DE3439302A1 (de) 1985-05-09
DE3439302C2 true DE3439302C2 (de) 1987-08-13

Family

ID=16450328

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19843439302 Granted DE3439302A1 (de) 1983-10-27 1984-10-26 Speichersteuerungsvorrichtung

Country Status (3)

Country Link
US (1) US4683533A (de)
JP (1) JPS6093563A (de)
DE (1) DE3439302A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4005319A1 (de) * 1989-02-22 1990-08-23 Siemens Ag Verfahren und anordnung zur aufrechterhaltung der datenkonsistenz in einem multiprozessorsystem mit privaten cachespeichern
DE4014733A1 (de) * 1989-05-10 1990-11-15 Hitachi Ltd Verfahren und vorrichtung zur steuerung eines pufferspeichers

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4768148A (en) * 1986-06-27 1988-08-30 Honeywell Bull Inc. Read in process memory apparatus
KR920001282B1 (ko) * 1987-10-02 1992-02-10 가부시키가이샤 히타치세이사쿠쇼 버퍼메모리 제어장치
JPH07111713B2 (ja) * 1988-02-24 1995-11-29 富士通株式会社 構成変更制御方式
JPH0754484B2 (ja) * 1988-06-17 1995-06-07 株式会社日立製作所 複数のプロセッサを有する計算機システムの記憶制御装置
US4949246A (en) * 1988-06-23 1990-08-14 Ncr Corporation Adapter for transmission of data words of different lengths
US5226169A (en) * 1988-12-30 1993-07-06 International Business Machines Corp. System for execution of storage-immediate and storage-storage instructions within cache buffer storage
DE68923863T2 (de) * 1989-01-13 1996-03-28 Ibm Ein-/Ausgabecachespeicherung.
US5155828A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Computing system with a cache memory and an additional look-aside cache memory
JPH0748191B2 (ja) * 1989-08-10 1995-05-24 株式会社日立製作所 バッファ記憶制御装置
US5330773A (en) * 1989-08-29 1994-07-19 Bongrain S.A. Process for making cheese or a cheese-related specialty
JPH03216744A (ja) * 1990-01-22 1991-09-24 Fujitsu Ltd 内蔵キャッシュ・メモリ制御方式
JP2825906B2 (ja) * 1990-02-01 1998-11-18 株式会社日立製作所 計算機システム
JP4325843B2 (ja) * 2002-12-20 2009-09-02 株式会社日立製作所 論理ボリュームコピー先性能調整方法及び装置
US7343457B1 (en) * 2003-08-01 2008-03-11 Unisys Corporation Dual active bank memory controller
JP2005149082A (ja) * 2003-11-14 2005-06-09 Hitachi Ltd ストレージ制御装置、及びストレージ制御装置の制御方法
US7590213B1 (en) * 2004-03-18 2009-09-15 Holtec International, Inc. Systems and methods for storing spent nuclear fuel having protection design
US7330526B2 (en) 2005-03-25 2008-02-12 Holtec International, Inc. System and method of storing high level waste
US9443625B2 (en) 2005-03-25 2016-09-13 Holtec International, Inc. Method of storing high level radioactive waste
US11569001B2 (en) 2008-04-29 2023-01-31 Holtec International Autonomous self-powered system for removing thermal energy from pools of liquid heated by radioactive materials
US9001958B2 (en) 2010-04-21 2015-04-07 Holtec International, Inc. System and method for reclaiming energy from heat emanating from spent nuclear fuel
UA107665C2 (ru) * 2009-05-06 2015-02-10 Holtec International Inc УСТРОЙСТВО ДЛЯ ХРАНЕНИЯ И / ИЛИ транспортировки ВЫСОКОРАДИОАКТИВНЫХ ОТХОДОВ
US11373774B2 (en) 2010-08-12 2022-06-28 Holtec International Ventilated transfer cask
US10811154B2 (en) 2010-08-12 2020-10-20 Holtec International Container for radioactive waste
US8905259B2 (en) 2010-08-12 2014-12-09 Holtec International, Inc. Ventilated system for storing high level radioactive waste
US9514853B2 (en) 2010-08-12 2016-12-06 Holtec International System for storing high level radioactive waste
US11887744B2 (en) 2011-08-12 2024-01-30 Holtec International Container for radioactive waste
US9105365B2 (en) 2011-10-28 2015-08-11 Holtec International, Inc. Method for controlling temperature of a portion of a radioactive waste storage system and for implementing the same
JP2015518567A (ja) 2012-04-18 2015-07-02 ホルテック・インターナショナル・インコーポレーテッド 高レベル放射性廃棄物の貯蔵および/または移送

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3618040A (en) * 1968-09-18 1971-11-02 Hitachi Ltd Memory control apparatus in multiprocessor system
US3573745A (en) * 1968-12-04 1971-04-06 Bell Telephone Labor Inc Group queuing
JPS5440182B2 (de) * 1974-02-26 1979-12-01
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
JPS5864690A (ja) * 1981-10-14 1983-04-18 Hitachi Ltd キヤツシユメモリ制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4005319A1 (de) * 1989-02-22 1990-08-23 Siemens Ag Verfahren und anordnung zur aufrechterhaltung der datenkonsistenz in einem multiprozessorsystem mit privaten cachespeichern
DE4014733A1 (de) * 1989-05-10 1990-11-15 Hitachi Ltd Verfahren und vorrichtung zur steuerung eines pufferspeichers

Also Published As

Publication number Publication date
JPS6093563A (ja) 1985-05-25
JPS6321220B2 (de) 1988-05-06
DE3439302A1 (de) 1985-05-09
US4683533A (en) 1987-07-28

Similar Documents

Publication Publication Date Title
DE3439302C2 (de)
DE69733374T2 (de) Speichersteuerungsvorrichtung und -system
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE3102150C2 (de) Multiprozessor-Datenverarbeitungsanlage
DE69722512T2 (de) Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE60037174T2 (de) Puffersystem für externen speicherzugriff
DE3011552C2 (de)
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE102009023898B4 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE2241257C3 (de) Datenverarbeitende Anlage
DE102007048507B4 (de) Cache-Speichersystem und Verfahren zum Bereitstellen eines Transaktionsspeichers
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE3502147C2 (de)
DE4420451C2 (de) Sperrmechanismus für ein CHECK-IN/CHECK-OUT-Modell
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE2856715C3 (de) Verfahren zum Durchführen einer Pufferspeicher-Koinzidenz in einem Mehrprozessorsystem
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE10048072A1 (de) Linklisten-DMA-Descriptor-Architektur
DE4423559A1 (de) Datenverbindungsverfahren und Vorrichtung für Multiprozessor-Computersysteme mit gemeinsamem Speicher
DE4330751A1 (de) Verbessertes Cache-Speichersystem zur Reduzierung der Speicherwartezeiten
DE4417068A1 (de) Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee