DE3046912C2 - Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage - Google Patents

Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage

Info

Publication number
DE3046912C2
DE3046912C2 DE19803046912 DE3046912A DE3046912C2 DE 3046912 C2 DE3046912 C2 DE 3046912C2 DE 19803046912 DE19803046912 DE 19803046912 DE 3046912 A DE3046912 A DE 3046912A DE 3046912 C2 DE3046912 C2 DE 3046912C2
Authority
DE
Germany
Prior art keywords
address
main memory
cache
memory
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19803046912
Other languages
English (en)
Other versions
DE3046912A1 (de
Inventor
Marion G Porter
Charles Patrick Ryan
James L King
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.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
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 Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Publication of DE3046912A1 publication Critical patent/DE3046912A1/de
Application granted granted Critical
Publication of DE3046912C2 publication Critical patent/DE3046912C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

Description

Die Erfindung bezieht sich auf eine Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungs­ anlage gemäß dem Oberbegriff des Patentanspruchs.
Ein Cachespeicher ist eine kleine, mit hoher Geschwindigkeit arbeitende Speichereinheit mit einer Adreßliste, in der die Adressen der im betreffenden Cachespeicher gespeicherten Datenworte angegeben sind. Der Cachespeicher arbeitet im allgemeinen mit höherer Geschwindigkeit als der Hauptspeicher. Wenn die Datenworte im Cachespeicher abgespeichert sind, ist somit ein schnellerer Zugriff durch den Prozessor auf die angeforderten Datenworte möglich. Der Cache­ speicher enthält dieselben Datenworte, die auch in einem Teil des Hauptspeichers gespeichert sind. Operanden und Befehle werden nachstehend generell als Informationssegmente oder Datenworte bezeichnet. Die betreffenden Daten werden entweder aus dem Hauptspeicher abgerufen und im Cachespeicher abgespeichert oder direkt von der Zentraleinheit her geladen. Wenn die Zentraleinheit Informationssegmente benötigt, erfolgt zuerst ein Zugriff auf den Cachespeicher. Wenn die Informations­ segmente im Cachespeicher nicht vorhanden sind, werden sie durch Zugriff auf den Hauptspeicher erhalten. Die im Hauptspeicher verfügbaren und zum Prozessor übertragenen Informationssegmente, auf die ein Zugriff erfolgt, werden im Cachespeicher abgespeichert, wenn sie von der Zentraleinheit zur Verarbeitung aus dem Haupt­ speicher abgerufen werden.
Es ist wünschenswert, daß der Hauptspeicher alle benötigten Informationssegmente oder Datenworte enthält und daß im Cache­ speicher entsprechende gleiche Datenworte gespeichert sind. Wenn jedoch eine Peripherieeinheit Zugriff auf den Hauptspeicher erhält und den Inhalt eines Teils des Hauptspeichers abruft und im Hauptspeicher die abgerufenen Datenworte löscht, kann es vorkommen, daß der oder die Cachespeicher eines oder mehrerer Prozessoren noch Datenworte enthalten, die nicht mehr im Hauptspeicher vorhanden sind.
Weiterhin ist es möglich, daß einer der Prozessoren ein Datenwort in einen bestimmten Speicherplatz im Hauptspeicher einschreibt. Nun kann aber der Cachespeicher eines anderen Prozessors das Datenwort, das gerade durch den ersten Prozessor im Hauptspeicher überschrieben bzw. ersetzt worden ist, noch als gültiges Datenwort enthalten. Es kann demnach vorkommen, daß beim Zugriff des Prozessors auf das betreffende Datenwort, das unter derselben Adresse in dem ihm zugeordneten Cachespeicher gespeichert ist, ein Datenwort zur Verarbeitung abgerufen wird, das nicht mehr mit dem entsprechenden, im Hauptspeicher befindlichen Datenwort identisch ist.
Eine Betriebsart zum Löschen des Cachespeichers besteht darin, die gesamten Cachespeicher aller Prozessoren jedesmal dann zu löschen, wenn Datenworte in den Hauptspeicher eingeschrieben werden oder Datenworte im Hauptspeicher durch eine Peripherie­ einheit gelöscht worden sind. Üblicherweise wird jedoch die Mehrzahl der in den Cachespeichern gespeicherten Datenworte nicht als Ausgabeinformation an die Peripherieeinheit übertragen, weshalb es wahrscheinlich ist, daß gerade gelöschte Informations­ segmente erneut aus dem Hauptspeicher abgerufen werden müssen. Eine Schaltungsanordnung für diese Betriebsart zum Löschen des Cachespeichers ist beispielsweise in der US-Patentschrift 3,845,474 beschrieben.
In vielen Datenverarbeitungsanlagen wird eine Segmentierung und Seitenbildung des Speichers angewandt. Jedes Segment ist üblicherweise in kleinere Bereiche unterteilt, die als Seiten bezeichnet werden. Diese Seiten entsprechen bestimmten Speicher­ plätzen innerhalb des Cachespeichers. So ist es möglich, eine Anordnung zu schaffen, die ein selektives Löschen nur bestimmter Speicherplätze gewährleistet, nämlich jener Speicherplätze, die zu einer bestimmten Seite gehören, sofern diese betreffende Seite durch eine Eingabe/Ausgabe-Operation oder durch Operationen eines anderen Prozessors in Anspruch genommen und beeinflußt wird. Eine Schaltungsanordnung für diese Betriebsart zum selektiven Löschen eines in Seiten aufgeteilten Cachespeichers ist beispielsweise in der US-Patentschrift 3,979,726 beschrieben. Obwohl bei dieser Anordnung nicht der gesamte Cachespeicher, sondern nur eine Seite desselben gelöscht wird, können hierbei dennoch auch weiterhin nutzbare Datenworte in dem Cachespeicher gelöscht werden, sofern diese Daten auch zu der in Anspruch genommenen und beeinflußten Seite gehören. Deshalb ist es auch hier notwendig, solche Datenworte in nachfolgenden Operationen der Zentraleinheit zum Ersetzen der im Cache­ speicher gelöschten Datenworte erneut aus dem Hauptspeicher ab­ zurufen und dahin zu übertragen.
Eine weitere Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Datenverarbeitungsanlage mit zwei oder mehr Zentralprozessoren und einem für alle Prozessoren gemeinsamen Hauptspeicher ist in der US-Patentschrift 4,056,844 beschrieben. Jeder Zentralprozessor ist mit einem eigenen Cache­ speicher ausgestattet und umfaßt eine Primäradreßliste, in der die Adressen der im Cachespeicher enthaltenen Datenworte gespeichert sind. Jedem Cachespeicher ist weiterhin eine Doppeladreß­ liste zugeordnet, in der dieselben Adressen ein zweites Mal gespeichert sind. Ein aktiver Prozessor ändert bei einer Schreib­ operation die Datenworte in einem Cachespeicher und im Haupt­ speicher und markiert die zu diesen Datenworten gehörenden Adressen in den beiden Adreßlisten als ungültig. Bei dieser Schaltungsanordnung gestaltet sich die Systemsteuerung in den heute üblichen busorientierten Datenverarbeitungsanlagen als aufwendig und schwierig, insbesondere beim Zuschalten von Peri­ pherieeinheiten.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, eine verbesserte Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einem busorientierten Datenverarbeitungs­ system mit mehreren Zentralprozessoren und Peripherieeinheiten, die über Busleitung oder Mehrleitungskanäle zum Zwecke der Datenübertragung miteinander verbunden sind, zu schaffen.
Diese Aufgabe wird mit Hilfe einer Schaltungsanordnung nach den kennzeichnenden Merkmalen des Patentanspruchs gelöst.
Anhand von Zeichnungen wird die Schaltungsanordnung nachstehend beispielsweise näher erläutert. Es zeigen:
Fig. 1 in einem Blockdiagramm den Aufbau der Datenverarbeitungs­ anlage;
Fig. 2 in einem Blockdiagramm den Aufbau des Multiprozessor- Datenverarbeitungssystems mit jedem Zentralprozessor zuge­ ordneten Cachespeichereinheiten, Systemsteuereinheiten, Doppeladreßlisten und einem gemeinsamen Hauptspeicher;
Fig. 3 in einem Blockdiagramm die Schaltungsanordnung der Cachespeichereinheit aus Fig. 2;
Fig. 4 in einem Blockdiagramm die Schaltungsanordnung der Doppeladreßliste aus Fig. 2; und
Fig. 5 anhand eines Ablaufschemas die Arbeitsweise der Doppeladreßlisten aus Fig. 2 und Fig. 4.
Der grundsätzliche Aufbau einer Einprozessor-Datenverarbei­ tungsanlage ist in Fig. 1 gezeigt. Ein Zentralprozessor oder Zentraleinheit 10 ist über eine Busleitung oder Mehrleitungs­ kanal 12 mit dem Cachespeicher 14 verbunden. Der Cachespeicher 14 ist über eine Busleitung oder Mehrleitungskanal 16 mit der Systemsteuereinheit 18 verbunden. Die Systemsteuereinheit 18 ist über eine Busleitung oder Mehrleitungskanal 20 mit dem Hauptspeicher 22 verbunden. Mehrere Peripherieeinheiten 24, 25, insbesondere zur Datenein-/-ausgabe, sind mit der Systemsteuer­ einheit 18 über Busleitungen oder Mehrleitungskanäle 27, 28 verbunden. Die Busleitungen dienen als Datenkanäle zur Datenübertragung.
Die Zentraleinheit sendet Zugriffsanforderungen zum Abruf von Datenwörtern aus dem Hauptspeicher 22 aus. Die Zentraleinheit kann außerdem Schreibbefehle über den Mehrleitungs­ kanal 12 abgeben, um bestimmte Datenworte in den Hauptspeicher 22 einzuschreiben. Die Anforderungen bezüglich auszulesender und einzuschreibender Daten oder Befehle erfolgt über den Cachespeicher 14. Das Lese­ kommando löst im allgemeinen eine Suche über die Cache­ speicher-Adreßliste (nicht dargestellt) aus, mit einer Adresse, die einen bestimmten Speicherplatz im Hauptspeicher definiert. Gleichzeitig wird festgestellt, ob das gesuchte Datenwort bzw. dessen Adresse auch im Cachespeicher vorhanden ist. Wenn das Informationssegment in dem Cachespeicher vorhanden ist, dann wird es aus dem Cachespeicher ausgelesen und über den Mehrleitungskanal 12 an die Zentraleinheit übertragen. Die Anforderung bezüglich des Informationssegments aus dem Hauptspeicher 22 wird in diesem Fall nicht weiterverfolgt. Wenn die Informationssegmente nicht in dem Cachespeicher vorhanden sind, was sich aus der Hauptspeicheradresse ergibt, dann wird eine Lese-Zugriffs­ anforderung über den Mehrleitungskanal 16 an die System­ steuereinheiten 18 und über den Mehrleitungskanal 20 an den Hauptspeicher 22 übertragen. Das auszulesende Datenwort ist durch die von der Zentraleinheit bereitgestellte Adresse bestimmt. Das ausgelesene Informationssegment wird über den Mehr­ leitungskanal 20, die Systemsteuereinheit 18, den Mehrleitungskanal 12 an die Zentraleinheit 10 übertragen. Im allgemeinen werden die aus dem Hauptspeicher ausgelesenen Datenwörter auch im Cachespeicher abgespeichert, so daß für den Fall, daß die Zentraleinheit bei nachfolgenden Operationen diese Datenwörter erneut benötigt, diese Datenworte bereits im Cachespeicher durch schnellen Zugriff verfügbar sind.
Während eines Schreibkommandos durchlaufen die in den Hauptspeicher 22 einzuschreibenden Informationssegmente den Mehrleitungskanal 12, den Cachespeicher 14, den Kanal 16, die Systemsteuereinheit 18 und den Kanal 20. Die Zentraleinheit sorgt dafür, daß die in den Hauptspeicher eingeschriebenen Informationssegmente auch in den Cachespeicher eingeschrieben werden. Es sei darauf hingewiesen, daß sämtliche innerhalb des Cachespeichers vorhandenen Informationssegmente ebenfalls in dem Hauptspeicher 22 gespeichert vorhanden sind. Die peripheren Einrichtungen 24 und 25 vermögen entweder Informationssegmente von der Systemsteuereinheit 18 her aufzunehmen und/oder an diese abzugeben. Wenn beispielsweise die periphere Einrichtung 24 in den Hauptspeicher 22 einzuschreibende Informationssegmente bereitstellt, durchlaufen die Informationssegmente den Kanal 27, die Systemsteuereinheit 18 und den Kanal 20. Wenn irgendeines der Informationssegmente in dem Hauptspeicher durch Informationssegmente von der peripheren Einrichtung 24 überschrieben wird, dann müssen die überschriebenen Informationssegmente im Cachespeicher selektiv gelöscht werden.
Wenn beispielsweise die Peripherieeinheit 25 Datenworte aus dem Hauptspeicher 22 auslesen soll bei gleichzeitigem Löschen dieser Datenworte, dann müssen die im Hauptspeicher gelöschten Datenworte, die noch im Cachespeicher vorhanden sind, ebenfalls gelöscht werden. Ein Verfahren zum Löschen von Datenwörtern im Cachespeicher besteht darin, lediglich ein Voll/Leer-Bit zu löschen, welches in der dem Cachespeicher zugehörigen Adreßliste gespeichert ist.
In Fig. 2 ist ein Multiprozessor-Datenverarbeitungssystem 34 mit drei Zentraleinheiten (CPU) 37 bis 39 dargestellt. Obwohl das Datenverarbeitungssystem 34 als drei Zentraleinheiten umfassendes System dargestellt ist, kann die vorliegende Erfindung auch mit nur zwei oder auch mit mehr als drei Zentraleinheiten ausgeführt werden. Jede Zentraleinheit 37 bis 39 ist mit einer ihr zugeordneten Cachespeichereinheit 41 bis 43 über die Mehrleitungskanäle 45, 47 bzw. 48 verbunden.
Über die Mehrleitungskanäle 45, 47 und 48 fordern die Zentraleinheiten einerseits Informationssegmente von dem Haupt­ speicher 50 an und veranlassen andererseits durch Befehlssteuerung, daß durch die Zentraleinheit bereitgestellte In­ formationssegmente in den Hauptspeicher 50 eingeschrieben werden. Die Arbeitsweise der Cachespeichereinheiten 41 bis 43 wird weiter unten in Verbindung mit Fig. 3 noch im einzelnen erläutert. Die Cachespeichereinheit 41 ist über den Mehrleitungskanal 53 mit einer System­ steuereinheit 55 verbunden. Die Systemsteuereinheiten 58 und 59 sind über Mehrleitungskanäle 61 bzw. 62 mit den Cachespeichereinheiten 42 bzw. 43 verbunden. Die System­ steuereinheiten 55, 58 und 59 sind, obwohl dies in Fig. 2 nicht explizit gezeigt ist, außerdem mit mehreren Peripherieeinheiten verbunden, wie z. B. mit den peripheren Einrichtungen 24 und 25 von Fig. 1.
Die Systemsteuereinheiten 55, 58 und 59 können eine oder mehrere Zentraleinheiten bedienen. In diesem Ausführungsbeispiel ist die Systemsteuereinheit 55 über Mehrleitungskanäle 64 und 65 mit den Systemsteuereinheiten 58 bzw. 59 ver­ bunden. Es sei darauf hingewiesen, daß sämtliche in Fig. 2 dargestellten Busleitungen oder Datenkanäle zur Zweiwege-Datenübertragung zwischen den Einheiten dienen. Die Systemsteuereinheit 58 ist über den Mehrleitungskanal 67 mit der Systemsteuereinheit 59 verbunden. Die Systemsteuereinheiten 55, 58 und 59 sind über die Mehrleitungskanäle 69, 70 bzw. 71 mit dem Hauptspeicher 50 verbunden. Jeder Cachespeichereinheit 41 bis 43 ist eine Doppel-Adreßliste 73 bis 75 zugeordnet. Die Doppel-Adreßliste 73 ist über den Mehrleitungskanal 77 mit der Systemsteuereinheit 55 und über die Mehrleitungs­ kanäle 79 und 80 mit den Systemsteuereinheiten 58 bzw. 59 verbunden. Die Doppel-Adreßliste 74 ist über den Mehrleitungs­ kanal 82 mit der der Cachespeichereinheit 42 zugehörigen Systemsteuereinheit 58 und ferner über die Mehrleitungskanäle 84 und 85 mit den Systemsteuereinheiten 55 bzw. 59 verbunden. Die Doppel- Adreßliste 75 ist in entsprechender Weise über die Mehrlei­ tungskanäle 88 und 89 mit den Systemsteuereinheiten 55 bzw. 58 und außerdem über den Mehrleitungskanal 92 mit der Systemsteuereinheit 59 verbunden.
Die Zentraleinheiten 37, 38 und 39 können die zur Verarbeitung benötigten Datenwörter aus dem Hauptspeicher 50 dadurch abrufen, daß sie einen Lesebefehl und die Adressen für die Speicherplätze bereitstellen, in denen die gewünschten Informationssegmente gespeichert sind. Die Zentraleinheiten 37, 38 und 39 können auch bereitgestellte Datenwörter durch Befehlssteuerung über die zugehörigen Systemsteuereinheiten 55, 58 bzw. 59 in die bereitgestellten Adressen des Hauptspeichers 50 einschreiben. Auch die mit den Systemsteuereinheiten 55, 58 und 59 verbundenen Peripherieeinheiten können Lesebefehle abgeben. Diese Lesebefehle können auch das Löschen der gelesenen Datenwörter im Hauptspeicher bewirken.
Wenn die Zentraleinheit 37 mit einem Lesebefehl ein bestimmtes Informations­ segment anfordert, dann gelangt die Anforderung zunächst über den Kanal 45 zu der Cachespeichereinheit 41. Diese bestimmt normalerweise, ob das angeforderte Informationssegment in ihrem Cachespeicher 110 (Fig. 3) gespeichert ist. Sofern das Informationssegment dort gespeichert ist, wird die den Hauptspeicher betreffende Leseoperation abgebrochen. Wenn das Informationssegment jedoch nicht in dem Cachespeicher ent­ halten ist, dann wird die Operation in der oben beschriebenen Weise fortgesetzt und das Informationssegment aus dem Hauptspeicher 50 ausgelesen. Das aus dem Hauptspeicher 50 ausgelesenen Informationssegment wird von der Systemsteuereinheit 55 über die Cachespeichereinheit 41 zur Zentraleinheit 37 übertragen. Dabei wird das Informationssegment auch in dem Cachespeicher 110 (Fig. 3) innerhalb der Cachespeicher­ einheit 41 abgespeichert.
Wenn die Zentraleinheit (CPU) 37 einen Schreibbefehl ab­ gibt und die Adresse des Speicherplatzes für den Hauptspeicher 50 bereitstellt, in den das durch die Zentraleinheit 37 bereitgestellte Informationssegment einzuschreiben ist, dann kann der Schreibbefehl veranlassen, daß das Informationssegment gleichzeitig auch in den Cachespeicher 110 (Fig. 3) eingeschrieben wird.
Die Doppel-Adreßliste 73, die zur Cachespeichereinheit 41 gehört, enthält eine Aufzeichnung sämtlicher Adressen der Speicher­ plätze des Hauptspeichers 50, deren Inhalt außerdem in dem Cachespeicher 110 (Fig. 3) der Cachespeichereinheit 41 ge­ speichert ist. Die Doppel-Adreßliste 73 bestimmt, ob eine Übereinstimmung vorliegt zwischen dem gerade adressierten Speicherplatz und einer im Cachespeicher vorhandenen Speicherplatzadresse. Die von der Doppel-Adreßliste und der Cachespeichereinheit benutzten besonderen Schreib- und Leseverfahren zur Bestimmung, ob das Informationssegment des adressierten Hauptspeicherplatzes auch im Cachespeicher gespeichert ist oder nicht, sind einander ähnlich.
Die Doppel-Adreßliste 73 nimmt außerdem Eingangssignale von den anderen Systemsteuereinheiten 58 und 59 auf, um festzustellen, ob irgendeine Operation der Zentraleinheiten oder der angeschlossenen Peripherieeinheiten beim Durchlaufen der Systemsteuereinheiten irgendwelche Speicher­ plätze innerhalb des Hauptspeichers beeinflußt, deren Informationssegmente ebenfalls im Cachespeicher der Cachespeichereinheit 41 gespeichert sind. Wenn beispielsweise die Systemsteuer­ einheit 58 einen Schreibbefehl von der Zentraleinheit 38 aufnimmt, um eine Information in einen bestimmten Speicher­ platz des Hauptspeichers einzuschreiben, dann werden über die Kanäle 79 und 89 die Doppel-Adreßlisten 73 und 75 entsprechend darüber informiert. Die Doppel-Adreßlisten 73 und 75 überprüfen ihren Inhalt, um zu bestimmen, ob die zugehörigen Cachespeichereinheiten 41 bzw. 43 das in dem betreffenden Speicherplatz vorhandene Informations­ segment enthalten. Wenn die Doppel-Adreßliste 73 feststellt, daß das Informationssegment in dem Cache­ speicher 110 der Cachespeichereinheit 41 gespeichert ist, dann wird durch die Doppel-Adreßliste 73 ein Löschbefehl über den Kanal 77 ausgelöst. Die Systemsteuereinheit 55 leitet diesen Löschbefehl über den Kanal 53 zu der Cachespeichereinheit 41, und das betreffende Informationssegment wird in deren Cachespeicher gelöscht. Wenn die Doppel-Adreßliste 75 feststellt, daß auch die Cachespeichereinheit 43 das betreffende Informationssegment enthält, dann gibt auch sie einen Löschbefehl über den Kanal 42 ab. Dieser Löschbefehl gelangt über die Systemsteuereinheit 59 zu der Cachespeichereinheit 43, und das betreffende Informationssegment wird in deren Cachespeicher ebenfalls gelöscht.
Eine entsprechende Ablauffolge tritt ebenfalls auf, wenn z. B. die von der Zentraleinheit 38 gesteuerte Systemsteuereinheit 58 es einer peripheren Einrichtung ermöglicht, aus Hauptspeicherplätzen Daten auszulesen und die ausgelesenen Daten dort auch zu löschen. Die Doppel-Adreßlisten 73, 74 und 75 überprüfen dabei jede Adresse, um zu bestimmen, ob auch die Cachespeichereinheiten 41, 42 bzw. 43 das entsprechend adressierte Informationssegment enthalten oder nicht. Wenn die Doppel- Adreßliste 73 feststellt, daß auch der Cachespeicher 110 der Cachespeichereinheit 41 das in dem betreffenden Haupt­ speicherplatz enthaltene Informationssegment enthält, dann gibt diese Doppel-Adreßliste einen Löschbefehl ab, wie dies schon oben erläutert worden ist. Die Doppel-Adreßlisten 74 und 75 geben ebenfalls Löschbefehle ab, wenn festgestellt wird, daß auch deren zugehörige Cachespeicher das betreffende Informationssegment enthalten.
Die Cachespeichereinheit 41 gemäß Fig. 2 ist in Fig. 3 in weiteren Einzelheiten veranschaulicht. Die Cache­ speichereinheiten 41, 32 und 43 (Fig. 2) entsprechen einander, weshalb die Erläuterung einer Einheit für sämtliche Einheiten genügen dürfte. Wie in Fig. 3 gezeigt, sind die Eingangsleitungen 112 und die Ausgangs­ leitungen 114 des Kanals 45 als voneinander getrennte Leitungen dargestellt. Die Standard-Taktfunktionen sowie weitere Verknüpfungs-Kommandofunktionen in einer Anordnung dieses Typs werden insgesamt benutzt. Demgemäß werden auch noch andere Leitungen als die Leitungen 112 und 114 in dem Kanal 45 vorhanden sein. Dasselbe trifft auch für die anderen Kanäle zu, wie dies in Verbindung mit den Fig. 3 und 4 im einzelnen erläutert werden wird.
Die Eingangsleitungen 112 sind mit Datenschaltern oder Multiplexern 118, 119 und 120, mit Registern 122 bis 124 und mit einem Vergleicher 126 verbunden. Der Datenschalter 119 nimmt lediglich den unteren Teil der Hauptspeicheradresse auf und gibt die Adresse für die Cachespeicher-Adreßliste oder Primäradreßliste 129 ab. Die Cache­ speicher-Adreßliste 129 stellt einen RAM-Speicher mit wahlfreiem Zugriff dar, der durch das Ebenen-System als assoziativ adressierbarer Speicher organisiert ist. Der Ausgang des Datenschalters 119 ist über den Mehrleitungskanal 132 mit dem Datenschalter 135, der Primäradreßliste 129 und dem Register 137 verbunden. Das Register 137 ist ausgangs­ seitig über den Kanal 140 mit der Eingangsseite des Datenschalters 119 verbunden.
Der Ausgang des Datenschalters 135 ist über den Mehrleitungs­ kanal 142 mit einem Adreßregister 143 verbunden. Das Adreßregister 143 dient der erforderlichen Adressierung des Cachespeichers 110 über den Mehrleitungskanal 144. Die in den Cachespeicher 110 einzuschreibenden Daten werden über den Mehrleitungskanal 146 von dem Datenschalter 118 bereitgestellt. Der Vergleicher 126 gibt ein Ausgangs­ signal über den Kanal 148 an den Datenschalter 151 ab. Der Datenschalter 151 nimmt außerdem eingangsseitig die Ausgangssignale des Cachespeichers 110 über eine Vielzahl von Kanälen 155 auf. Der Ausgang des Datenschalters 151 ist über den Mehrleitungskanal 160 mit dem Register 158 verbunden. Der Ausgang des Registers 158 ist über den Mehrleitungskanal 162 mit einem Datenschalter 164 verbunden. Der Ausgang des Datenschalters 164 ist über die Ausgangsleitungen 114 mit der Zentraleinheit 37 (Fig. 2) verbunden.
Wenn Daten von der Zentraleinheit 37 in den Cachespeicher einzuschreiben sind, dann werden die Adresse und das Kommando über die Eingangsleitungen 112 zugeführt. Der Schreibbefehl enthält die gesamte Hauptspeicheradresse für das in den Cachespeicher einzuschreibende Informationssegment. Der untere Teil der Adresse, und zwar die Bits 24 bis 30, werden über den Datenschalter 119 an die Cachespeicher-Adreßliste 129 abgegeben. Der obere Teil der Adresse wird an den Ver­ gleicher 126 und an den Cachespeicher 110 abgegeben. Das in den Cachespeicher 110 einzuschreibende Informations­ segment wird von den Eingangsleitungen 112 über den Daten­ schalter 118 und den Kanal 146 an den Cachespeicher 110 ab­ gegeben. Der untere Teil der Adresse bezüglich des Speicherplatzes innerhalb des Cachespeichers, in den das Informationssegment abzuspeichern ist, wird über den Kanal 132, den Datenschalter 135 und den Kanal 142 in dem Register 143 bereitgestellt. Der Cachespeicher 110 ist so ausgelegt, daß die von dem Register 143 über den Kanal 144 bereitgestellte Adresse acht Speicherplätze für das Informationssegment auswählt. Der bestimmte eine Speicherplatz von den acht Speicherplätzen (nachstehend werden acht Speicherplätze jeweils als eine Ebene bezeichnet) wird durch einen Umlaufzähler (nicht dargestellt) in der Steuereinheit 167 bereitgestellt. Wenn der untere Teil der Adresse an die Cachespeicher-Adreßliste 129 abgegeben wird, dann werden acht verschiedene Adressen-Identifizierungs­ kennzeichen in den acht Speicherplätzen innerhalb der Cachespeicher-Adreßliste als Ausgangssignale für den Ver­ gleicher 126 bereitgestellt. Der Vergleicher 126 bestimmt, ob irgendeines der zu den acht verschiedenen Adressen-Identifizierungszeichen gehörenden Zeichen mit dem oberen Teil der Haupt­ speicheradresse, der die Bits 10 bis umfaßt, übereinstimmt.
Während einer normalen Leseoperation gelangt der Lesebefehl von der Zentraleinheit 37 in den Cachespeicher 41, und der Datenschalter 119 wird durch Befehlssteuerung von der Steuereinheit 167 veranlaßt, den unteren Teil der Adresse an die Cachespeicher-Adreßliste 129 und den Daten­ schalter 135 abzugeben. Der Datenschalter 135 wird durch Befehlssteuerung veranlaßt, das Ausgangs­ signal des Datenschalters 132 durch die Steuereinheit 167 auszuwählen. Der untere Teil der Hauptspeicheradresse ist in dem Register 143 gespeichert. Das Ausgangssignal des Cachespeichers 110 ist eines von acht Informationssegmenten, die über die Kanäle 155 übertragen werden und durch den Schalter 151 auswählbar sind.
Die Auswahl eines der acht Informationssegmente am Ausgang des Schalters 151 erfolgt durch den Vergleicher 126. Wenn der untere Teil der Hauptspeicheradresse von dem Schalter 119 an die Adreßliste 129 abgegeben wird, dann wird das Ausgangssignal der Cachespeicher-Adreßliste für den Vergleicher 126 durch acht Adressen-Identifizierungs­ kennzeichen gebildet, die den oberen Teil der Hauptspeicher­ adresse für die in dem Cachespeicher 110 gespeicherten acht Informationssegmente darstellen. Ein Vergleich wird dabei mit Hilfe des Vergleichers 126 zwischen dem über die Eingangsleitungen 112 zugeführten oberen Teil der Hauptspeicheradresse und jedem der Adressen-Identifizierungskennzeichen vorgenommen, die durch die Cachespeicher- Adreßliste 129 bereitgestellt werden. Wenn irgend­ eines der Adressen-Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt, dann zeigt der Vergleicher 126 an, welche Ebene dem betreffenden Adressen-Identifizierungskennzeichen zugehört. Das Ebenen-Ausgangssignal für den Schalter 151 veranlaßt den Schalter, die betreffende Ebene auszuwählen, wobei das richtige Informationssegment in das Register 158 geladen wird, um über den Datenschalter 164 zu der Zentraleinheit 37 (Fig. 2) zu gelangen. Der Datenschalter 164 wird durch die Steuereinheit 167 gesteuert.
In einer besonderen Anpassungsoperation der Cachespeicher-Adreßliste wird die Ebene, die das Informationssegment innerhalb des Cachespeichers 110 einnimmt, zusammen mit dem oberen Teil der Hauptspeicheradresse (oder dem Adressen-Identifizierungs­ kennzeichen) gespeichert. Außerdem sind dem Adressen-Identi­ fizierungskennzeichen (oder dem oberen Teil der Hauptspeicher­ adresse) Voll/Leer-Bits zugehörig, die anzeigen, daß das betreffende bestimmte Adressen-Identifizierungskennzeichen einem gültigen Informationssegment innerhalb des Cache­ speichers 110 entspricht. Die Befehle und die Adresse für den richtigen Speicherplatz innerhalb des Hauptspeichers werden nicht nur dem Datenschalter 119 und dem Ver­ gleicher 126 zugeführt, sondern außerdem einer Gruppe von z. B. vier Zwischenspeicherregistern 123. Die Steuereinheit 167 steuert mittels entsprechender Steuersignale diese Register 123 ab. Es hat sich als nützlich herausgestellt, in gewissen Anwendungsfällen die Möglichkeit zu haben, vier gesonderte Leseanforderungen zu speichern, wofür man dann eben diese vier Register 123 benötigt. Jedes Register vermag dabei nicht nur das Kommandosegment der Leseanforderungen zu speichern, sondern außerdem die Hauptspeicheradresse und die zugeteilte Ebene im Cachespeicher 110, in der das aus dem Hauptspeicher ausgelesene Informations­ segment abzuspeichern ist, wenn es nicht im Cachespeicher enthalten ist. Wenn der Ver­ gleicher 126 feststellt, daß das Informationssegment bereits im Cachespeicher 110 vorhanden ist, wird die Lese­ operation bezüglich des Hauptspeichers abgebrochen, und die betreffende Leseanforderung wird im Register 123 gelöscht. Es können auch Leseanforderungen in das Register 123 eingegeben werden, während durch den Cachespeicher in der Primäradreßliste andere Funktionen ausgeführt werden.
Es ist zuweilen wünschenswert, daß der untere Teil der in dem Register 123 gespeicherten Adresse über den Mehrleitungs­ kanal 178 an den Datenschalter 135 abgegeben wird. Der untere Teil der Hauptspeicheradresse, die von dem Register 123 über den Datenschalter 135 in das Register 143 übertragen wird, bildet die Adresse für den Cachespeicher 110, wenn die Daten über die Systemsteuereinheit aus dem Hauptspeicher ausgelesen werden (was weiter unten noch näher erläutert wird). Das Ausgangssignal des Registers 123 wird außerdem einem Vergleicher 180 sowie einem Datenschalter 182 zugeführt. Der Datenschalter 182, der durch die Steuereinheit 167 gesteuert wird, gibt sein Ausgangssignal über die Ausgangsleitungen 186 des Kanals 53 an die Systemsteuereinheit 55 (Fig. 2) ab. Das Ausgangs­ signal 118 des Datenschalters 182 wird außerdem dem Daten­ schalter 118 über den Mehrleitungskanal 188 zugeführt.
Der Vergleicher 180 vergleicht das Ausgangssignal des Datenschalters 120 mit dem Inhalt des Registers 123, um festzusellen, ob irgendeine im Register 123 gespeicherte Leseanforderung erneut auf der Leitung 112 auftritt oder ob ein Löschkommando bezüglich des Registers 210 von der Systemsteuereinheit aufgenommen worden ist. Das Ausgangssignal des Vergleichers 180 kann über die Leitung 190 den Vergleicher 126 daran hindern, ein Ausgangssignal abzugeben. Dadurch wird verhindert, daß ein zu löschendes Informationssegment zu der Zentraleinheit 37 übertragen wird. Die Leitung 190 ist außerdem mit der Steuereinheit 167 verbunden.
Die Schreibkommandos von der Zentraleinheit werden in dem Register 124 gespeichert. Die Steuereinheit 167 stellt die richtigen Steuersignale zum Laden des Schreibkommandos in das Register 124 bereit. Der Ausgang des Registers 124 ist über den Mehrleitungskanal 197 mit dem Datenschalter 182 verbunden. Die Adresse des in dem Hauptspeicher zu speichernden Informationssegments kann über die Datenschalter 119 und 135 in das Register 143 übertragen werden. Die im Register 124 gespeicherten Informationssegmente werden über den Datenschalter 182, den Kanal 188 und den Datenschalter 118 übertragen und in den Cachespeicher 110 eingeschrieben. Zugleich wird der untere Teil der Haupt­ speicheradresse, der ein Adressen-Identifizierungskennzeichen darstellt, in diejenige Ebene der Primäradreßliste 129 geladen, die durch einen (nicht dargestellten) Umlaufzähler festgelegt ist. Dieselbe Ebene wird gleichzeitig auch für den Cachespeicher 110 bereit­ gestellt. Diese Ebene wird in die betreffende Primär­ adreßliste zusammen mit dem Adressen-Identifizierungskenn­ zeichen eingegeben, und das Voll/Leer-Bit wird so gesetzt, daß es einen Voll-Zustand anzeigt.
Unter gewissen Bedingungen ist es notwendig, daß der untere Teil der Hauptspeicheradresse kurzzeitig gespeichert werden muß, bevor er zur Verwendung in der Primäradreßliste herangezogen werden kann. In diesem Falle wird der untere Teil der Hauptspeicheradresse in das Register 137 geladen, zum geeigneten Zeitpunkt über den Datenschalter 119 aus dem Register 137 ausgelesen und über die Leitung 132 zur Primäradreßliste 129 übertragen.
Die von der Systemsteuereinheit 55 kommenden Eingangsleitungen 199, die nur einen Teil der den Kanal 53 bildenden Leitungen darstellen, sind mit dem Register 204 verbunden. Der Ausgang des Registers 204 ist über den Kanal 206 mit dem Register 210 sowie mit den Datenschaltern 118 und 164 verbunden. Der Datenschalter 164 wählt zwischen den Daten im Register 158 und den Daten im Register 204. Das Register 210 speichert bis zu vier Löschbefehle von der Systemsteuereinheit 55. Die Löschbefehle werden über den Mehrleitungskanal 212 an die Datenschalter 120 und 119 übertragen. Diese Löschbefehle sind durch die Steuereinheit 167 gesteuert und nehmen eine Vorrangstellung bzw. Priorität gegenüber den gewöhnlichen Operationen des Cachespeichers ein. Der untere Teil der Hauptspeicheradresse wird über den Datenschalter 119 zur Primäradreßliste 129 übertragen. Das Voll/Leer- Bit des in Frage kommenden Adressen-Identifizierungskennzeichens innerhalb der Primäradreßliste 129 ist so gesetzt, daß es eine Leerstelle im Cachespeicher anzeigt, d. h., daß an dem betreffenden Speicherplatz im Cachespeicher kein gültiges Informationssegment gespeichert ist. Als Teil des in dem Register 210 gespeicherten Befehls wird die Ebene des Adressen-Identifizierungskennzeichens zur Primäradreßliste 129 über nicht dargestellte Leitungen übertragen und kann durch den Umlaufzähler ("round robin counter") geschleust werden zur Feststellung für welches der acht, durch den unteren Teil der Hauptspeicheradresse im Register 210 adressierten Adressen-Identifizierungskennzeichen das zugeordnete Voll/Leer-Bit zurückgesetzt werden muß.
Bei einem gewöhnlichen Lesebefehl wird das in den Cachespeicher einzuschreibende Informationssegment über den Kanal 206 und den Datenschalter 118 zum Cachespeicher 110 übertragen. Der untere Teil der Hauptspeicheradresse wird entweder von dem Register 137 oder von dem Register 123 über die Datenschalter 119 bzw. 135 ins Register 143 übertragen. Das Informationssegment wird nach Abruf aus dem Hauptspeicher in den Cachespeicher eingeschrieben, wenn es im Cachespeicher nicht vorhanden war und wenn die Hauptspeicher-Leseoperation nicht abgebrochen worden ist.
Die Doppel-Adreßliste 73 (Fig. 2) ist in Fig. 4 im einzelnen veranschaulicht. Die Doppel-Adreßlisten 73, 74 und 75 sind der Art nach ähnlich, weshalb eine detaillierte Erläuterung lediglich einer Adreßliste genügt. Der Mehrleitungskanal 77 umfaßt Eingangsleitungen 220 und Ausgangsleitungen 222. Die Eingangsleitungen 220 sind mit den Registern 225 und 226 verbunden. Die Lese- und Schreibbefehle von der Zentraleinheit 37 (Fig. 2) werden über die Cachespeichereinheit 41 und die Systemsteuereinheit 55 übertragen und gelangen von der Systemsteuereinheit 55 über die Eingangsleitungen 220 in die Doppel- Adreßliste 73. Diese Befehle werden außerdem dem Hauptspeicher über den Kanal 69 (Fig. 2) zugeführt.
Das Register 226 leitet den Befehl und dessen Adressenteil an den Datenschalter 228 weiter. Die Adreßlisten-Logikeinheit 230 überprüft den im Register 226 stehenden Befehl über den Mehrleitungskanal 232. Der Befehl zeigt an, daß Datenwörter in den Cachespeicher eingeschrieben werden, nachdem sie aus dem Hauptspeicher 50 (Fig. 2) ausgelesen wurden. Wenn ein Befehl eine Änderung in der Primäradreßliste 129 anzeigt, gibt die Adreßlisten-Logikeinheit 230 ein Setz- oder Rücksetz-Signal über die Leitung 235 an den Doppel-Adreßlistenspeicher 237 ab. Die Adreßlisten-Logikeinheit 230 steuert außerdem die Datenschalter 228 und 239 über die Leitungen 241 bzw. 242 an. Sofern erforderlich, können die Lese- und Schreibbefehle von der Zentraleinheit in dem Register 225 gespeichert werden. Das Register 225 sollte imstande sein, mehr als einen Befehl zu speichern. Die von den peripheren Einrichtungen über die Systemsteuereinheit 55 herkommenden Lese/Lösch- Signale können ebenfalls in dem Register 225 gespeichert werden.
Die Lese-, Schreib- und Löschbefehle von den Systemsteuereinheiten 58 und 59 werden über die Kanäle 79 bzw. 80 den Registern 244 bzw. 245 zugeführt. die Register 244 und 245 sollten imstande sein, mehr als einen Befehl zu speichern. Der Ausgang des Registers 244 ist über den Mehrleitungskanal 247 mit dem Schalter 239 verbunden, und das Register 245 ist über den Mehrleitungskanal 249 mit dem Schalter 239 verbunden. Der Inhalt des Registers 225 wird außerdem dem Datenschalter 239 über den Mehrleitungskanal 251 zugeführt. Der Ausgang des Datenschalters 239 ist über den Mehrleitungskanal 253 mit einem Register 255 verbunden. Der Ausgang des Registers 255 ist über den Mehrleitungskanal 257 mit dem Eingang des Datenschalters 228 verbunden. Es können alle Befehle von der Systemsteuereinheit 55 (Fig. 2) in das Register 226 geladen werden; wenn eine Sofortaktion erforderlich ist, wird der Inhalt dieses Registers über den Datenschalter 228 weitergeleitet. Ansonsten können alternativ dazu Befehle von der Systemsteuereinheit 55 auch über den Datenschalter 239, den Kanal 253, das Register 255 und den Datenschalter 228 zum Kanal 259 weitergeleitet werden.
Die Adreßlisten-Logikeinheit 230 kann das Register 255 mittels des Datenschalters 228 auswählen. Der Datenschalter 228 ist über den Mehrleitungskanal 259 mit einem Register 261, dem Doppel-Adreßlistenspeicher 237 und einem Vergleicher 264 verbunden. Dabei wird nur die Adresse des Hauptspeichers zu dem Register 261 übertragen und dort gespeichert. Der untere Teil der Hauptspeicheradresse wird über den Kanal 266 als Adresse für den Doppel-Adreßlistenspeicher 237 genutzt. Der obere Teil der Hauptspeicheradresse wird über den Mehrleitungskanal 268 dem Doppel-Adreßlistenspeicher 237 zugeführt. Der untere Teil der Hauptspeicheradresse und die Ebene werden dem Doppel-Adreßlistenspeicher zur Abspeicherung zugeführt. Das Voll/Leer-Bit eines Adressen-Identifizierungskennzeichens wird über die Leitung 235 durch die Adreßlisten-Logikeinheit 230 gesetzt oder zurückgesetzt. Der obere Teil der Hauptspeicheradresse wird ferner an den Vergleicher 264 weitergeleitet. Wenn der Doppel-Adreßlistenspeicher gelesen wird um zu bestimmen, ob ein bestimmtes Adressen-Identifizierungskennzeichen identisch ist mit dem oberen Teil der Hauptspeicheradresse in dem kanal 259, dann wird eine Anzahl (hier acht) von Adressen- Identifizierungskennzeichen über den Mehrleitungskanal 270 dem Vergleicher 264 zugeleitet. Der Vergleicher 264 stellt fest, ob irgendeines der Adressen-Identifizierungskennzeichen den oberen Teil der Hauptspeicheradresse darstellt. Sofern irgendeines der Adressen-Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt, wird die dem betreffenden Adressen-Identifizierungskennzeichen zugehörige Ebene vom Vergleicher 264 über den Mehrleitungskanal 272 dem Register 261 zugeführt. Die Funktion der Doppel-Adreßliste 73 gemäß Fig. 4 wird im einzelnen in Verbindung mit Fig. 5 erläutert.
Die Zentraleinheit 38 erzeugt einen Schreibbefehl oder ein Schreibkommando für eine bestimmte Adresse in dem Hauptspeicher. Dieses Kommando wird über die Cachespeichereinheit 42 der Systemsteuereinheit 58 zugeführt. Die Systemsteuereinheit 58 überträgt Befehlsart und Adresse über den Mehrleitungskanal 79 in das Register 244, wo sie gespeichert werden. Der Inhalt des Registers 244, der diesen Schreibbefehl darstellt, wird über den Schalter 239 unter der Steuerung der Adreßlisten-Logikeinheit 230 in das Register 255 geladen. Das Register 255 wird über den Datenschalter 228 ausgewählt, und die Adresse wird zum Doppel-Adreßlistenspeicher übertragen. Es sei angenommen, daß im Cachespeicher 110 das angeforderte Informationssegment vorhanden ist. Der Doppel- Adreßlistenspeicher enthält auch das Adressen-Identifizierungskennzeichen für die betreffende Speicherstelle, so daß der Vergleicher 264 die Ebene des betreffenden Adressen-Identifizierungskennzeichens auszugeben in der Lage ist.
Der Vergleicher 264 stellt außerdem fest, ob das dem Adressen-Identifizierungskennzeichen - welches mit dem oberen Teil der Hauptspeicheradresse identisch ist - zugehörige Voll/Leer-Bit gesetzt ist. Falls das Voll/Leer-Bit nicht gesetzt ist, gibt der Vergleicher 264 die Ebene an das Register 261 nicht aus.
Wenn der Vergleicher 264 das Adressen-Identifizierungskennzeichen findet und wenn das Voll/Leer-Bit gesetzt ist, so wird unter der Steuerung durch die Adreßlisten-Logikeinheit 230 von dem Register 261 ein Löschkommando erzeugt. Dieses Löschkommando enthält den erforderlichen Code, der als solcher von der Cachespeichereinheit 41 erkannt wird, und den unteren Teil der aus dem Register 255 stammenden Hauptspeicheradresse, welche über den Datenschalter 228 bereitgestellt ist, und ferner die durch den Vergleicher 264 festgelegte Ebene. Dieses Löschkommando wird über die Ausgangsleitungen 222 an die Systemsteuereinheit 55 weitergeleitet. Die Systemsteuereinheit 55 (Fig. 2) überträgt das Löschkommando über die Eingangsleitungen 199 zu der Cachespeichereinheit 41. Das Löschkommando wird durch die Steuereinheit 167 erkannt und in das Register 210 geladen. Der untere Teil der Hauptspeicheradresse wird über den Datenschalter 119 vom Register 210 zur Primäradreßliste 129 übertragen. Die zu löschende Ebene wird beispielsweise über den (nicht dargestellten) Umlaufzähler abgegeben, und das Voll/Leer-Bit des in Frage kommenden einen der acht Adressen-Identifizierungskennzeichen, welches durch den unteren Teil der Hauptspeicheradresse adressiert ist, sei beispielsweise zurückgesetzt. Das Voll/Leer-Bit zeigt im Rücksetzzustand an, daß das dem betreffenden bestimmten Adressen-Identifizierungskennzeichen zugehörige, in dem Cachespeicher 110 enthaltene Informationssegment nicht mehr gültig ist.
Der Betrieb der Doppel-Adreßliste 73 und der Cachespeichereinheit 41 wird in Verbindung mit der folgenden Erläuterung des in Fig. 5 dargestellten Flußdiagramms im einzelnen erläutert. Nach der Initialisierung befindet man sich im Status 277. Von dort gelangt man in den Zustand 279, wo eine Überprüfung erfolgt, um festzustellen, ob ein Kommando von den Registern 225, 226, 244 oder 245 (Fig. 4) aufgenommen worden ist. Wenn kein Kommando aufgenommen worden ist, gelangt man auf dem Weg 280 wieder in den Ausgangszustand 277. Wenn ein Kommando aufgenommen ist, gelangt man vom Zustand 279 in den Zustand 281. Im Zustand 281 wird festgestellt, ob das aufgenommene Kommando seinen Ursprung in der zugehörigen Zentraleinheit 37 hatte. Die in den Registern 244 und 245 vorhandenen Kommandos stammen von den Systemsteuereinheiten 58 bzw. 59. Die in den Registern 225 und 226 vorhandenen Kommandos stammen von der Systemsteuereinheit 55. Wenn das Kommando von der Zentraleinheit 37 über die Systemsteuereinheit 55 aufgenommen wird, dann gelangt man auf dem Weg 284 in den Zustand 286. Wenn im Zustand 281 jedoch festgestellt wird, daß das Kommando seinen Ursprung in den Zentraleinheiten 38 oder 39 oder in einer der mit irgendeiner der Systemsteuereinheiten 55, 58 oder 59 verbundenen peripheren Einheiten hatte, dann gelangt man auf dem Weg 289 in den Zustand 291.
Unter der Annahme, daß das Kommando seinen Ursprung entweder in der Zentraleinheit 38 oder in der Zentraleinheit 39 oder in irgendeiner der mit den Systemsteuereinheiten 55, 58 oder 59 verbundenen peripheren Einrichtungen hat, und unter der Annahme, daß man sich gerade im Zustand 291 befindet, wird im Zustand 291 festgestellt, ob es sich bei dem Kommando um einen Lesebefehl handelt. Falls es ein Lesebefehl ist, gelangt man auf dem Weg 294 zum Schritt 296. Hier werden die angeforderten Daten von dem Hauptspeicher 50 (Fig. 2) an die in Frage kommende Systemsteuereinheit und von dieser an die anfordernde periphere Einrichtung oder Zentraleinheit ausgesendet. Die Doppel-Adreßliste 73 ist hierbei nicht in Aktion. Wenn das aufgenommene Kommando kein Lesebefehl ist, dann gelangt man vom Zustand 291 in den Zustand 298. Im Zustand 298 wird festgestellt, ob dieses Kommando ein Lese/ Lösch-Kommando ist. Wenn es sich dabei um ein Lese/Lösch-Kommando handelt, gelangt man vom Zustand 298 zum Schritt 304. Beim Schritt 304 wird die Adresse der angeforderten Information an den Doppel-Adreßlistenspeicher 237 (Fig. 4) abgegeben. Die Inhalte der Doppel-Adreßlistenspeicher (nicht dargestellt), die in den Doppel-Adreßlisten 74 und 75 vorgesehen sind, werden ebenfalls überprüft. Man gelangt dann vom Schritt 304 weiter zum Zustand 307.
Im Zustand 307 wird festgestellt, ob beim Vorliegen einer Übereinstimmung des oberen Teils der Hauptspeicheradresse die Vergleicher, wie der Vergleicher 264 (Fig. 4), irgendeines der Adressen-Identifizierungskennzeichen, die durch den unteren Teil der Hauptspeicheradresse adressiert sind, identifiziert haben oder nicht. Wenn der Vergleicher 264 beispielsweise das Adressen-Identifizierungskennzeichen innerhalb des Doppel-Adreßlistenspeichers nicht unterbringt, gelangt man auf dem Weg 310 zum Schritt 296. Im Schritt 296 wird das angeforderte Informationssegment aus dem Hauptspeicher über die Systemsteuereinheit entweder zu der anfordernden Zentraleinheit oder zu der anfordernden peripheren Einrichtung weitergeleitet. Wenn im Zustand 307 durch einen Vergleicher festgestellt wird, daß eine Übereinstimmung zwischen dem oberen Teil der Hauptspeicheradresse und einem der Adressen-Identifizierungskennzeichen, die durch den unteren Teil der Hauptspeicheradresse adressiert sind, existiert, dann gelangt man vom Zustand 307 zum Schritt 312, wo das Voll/Leer-Bit des mit dem oberen Teil der Hauptspeicheradresse übereinstimmenden Adressen-Identifizierungskennzeichens zurückgesetzt wird. Dadurch wird angezeigt, daß die entsprechende Speicherstelle innerhalb des Cachespeichers kein gültiges Informationssegment enthält.
Die Ebene des dem oberen Teil der Hauptspeicheradresse entsprechenden Adressen-Identifizierungskennzeichens wird über den Kanal 272 weitergeleitet zum Register 261, das unter der Steuerung durch die Adreßlisten-Logikeinheit 230 ein Löschkommando erzeugt. Der untere Teil der Hauptspeicheradresse steht im Register 255 und wird in das Register 261 übertragen. Das Löschkommando wird dann über die Ausgangsleitungen 222 und die Eingangsleitung 199 (Fig. 3) zum Register 204 übertragen. Das Löschkommando wird dann in das Register 210 geladen, und das durch den unteren Teil der Hauptspeicheradresse adressierte Voll/Leer-Bit wird in der im gelieferten Befehl enthaltenen Ebene zurückgesetzt. Dadurch wird angezeigt, daß in dem Cachespeicher 110 der entsprechende Speicherplatz kein gültiges Informationssegment enthält. Vom Schritt 312 gelangt man zum Schritt 296; die Daten werden aus dem Hauptspeicher 50 (Fig. 2) an die anfordernde periphere Einrichtung oder Zentraleinheit übertragen.
Wenn das im Zustand 298 überprüfte Kommando kein Lese/Lösch-Kommando ist, dann gelangt man auf dem Weg 316 zum Schritt 318. Dadurch ist impliziert, daß es sich bei dem Kommando um einen Schreibbefehl zum Einschreiben eines Informationssegments in den Hauptspeicher 50 handelt. Im Schritt 318 werden die Doppel-Adreßlisten 73, 74 und 75 überprüft, um festzustellen, ob ihre zugehörigen Cachespeicher das Informationssegment enthalten, welches die durch das Schreibkommando gelieferte Hauptspeicheradresse aufweist, wenn der Befehl z. B. von einer peripheren Einrichtung abgegeben worden ist. Demgemäß wird der untere Teil der Hauptspeicheradresse den Doppel-Adreßlistenspeichern innerhalb der Doppel- Adreßlisten 73, 74 und 75 zugeführt. Man gelangt vom Zustand 320 zum Schritt 318. Wenn das Schreibkommando von der Zentraleinheit 42 oder der Zentraleinheit 43 stammt, dann werden im Schritt 318 das Adressen-Identifizierungskennzeichen und die Ebene in die Doppel-Adreßlistenspeicher der Doppel-Adreßlisten 74 bzw. 75 eingeschrieben, sofern im zugehörigen Cachespeicher die Eintragung eines Informationssegments vorliegt.
Im Zustand 320 werden die Ausgangssignale der Vergleicher 264 innerhalb der Doppel-Adreßlisten 73, 74 oder 75 überprüft. Dadurch wird bestimmt, ob die Doppel-Adreßlistenspeicher ein Adressen-Identifizierungskennzeichen enthalten, welches anzeigt, daß die zugehörigen Cachespeichereinheiten 41, 42 bzw. 43 ein Informationssegment enthalten, welches der betreffenden Hauptspeicheradresse entspricht. Wenn im Schritt 318 ein Adressen-Identifizierungskennzeichen in einen Doppel-Adreßlistenspeicher eingeschrieben worden ist, dann wird der zugehörige Vergleicher 264 nicht überprüft. Wenn festgestellt wird, daß keines der Adressen-Identifizierungskennzeichen eine Anzeige dafür liefert, daß die Cachespeicher das betreffende Informationssegment enthalten, dann gelangt man auf dem Weg 322 zum Schritt 324. Wenn festgestellt wird, daß einer oder mehrere Doppel-Adreßlistenspeicher innerhalb der Doppel-Adreßlisten 73, 74 oder 75 ein Adressen-Identifizierungskennzeichen enthalten, welches eine Anzeige dafür liefert, daß der zugehörige Cachespeicher ein durch das Schreibkommando betroffenes Informationssegment aufweist, dann gelangt man vom Zustand 320 zum Schritt 326. Hier wird das Voll/Leer-Bit in dem Doppel-Adreßlistenspeicher für das bestimmte Adressen-Identifizierungskennzeichen zurückgesetzt, und ferner wird ein Löschbefehl zur Cachespeichereinheit übertragen, in deren Cachespeicher das betreffende Informationssegment gespeichert ist. Wenn ein Schreibvorgang im Schritt 318 in dem Doppel-Adreßlistenspeicher ausgeführt wird, dann wird selbstverständlich das Voll/Leer- Bis im Schritt 326 nicht zurückgesetzt.
Vom Schritt 326 gelangt man auf dem Weg 328 zum Schritt 324. Hier wird die Schreiboperation im Hauptspeicher 50 abgeschlossen, und ein Operations-Endesignal wird an die anfordernde Systemsteuereinheit von deren zugehöriger Doppel-Adreßliste und vom Hauptspeicher 50 ausgesendet. Das Operations-Endesignal kann über die Systemsteuereinheit 55 und die Cachespeichereinheit 41 erforderlichenfalls zu der Zentraleinheit 37 übertragen werden. Vom Schritt 324 gelangt man zurück zur Startposition, d. h. in den Zustand 277.
Es sei angenommen, daß im Zustand 280 das Kommando von der Zentraleinheit 37 aufgenommen worden ist und daß man auf dem Weg 284 in den Zustand 286 kommt. Im Zustand 286 wird festgestellt, ob das Kommando ein Lesekommando ist. Wenn es ein Lesekommando ist, gelangt man auf dem Weg 330 in den Zustand 332. Hier wird das Lesekommando erneut überprüft um festzustellen, ob der Befehl eine Lese/Lösch-Operation angibt. Wenn der Befehl kein Lese/Lösch-Kommando darstellt, gelangt man auf dem Weg 334 zum Schritt 336. Unter diesen Bedingungen wird das Kommando als Schreibbefehl gedeutet. Der obere Teil der Hauptspeicheradresse wird in den in Frage kommenden Speicherplatz des Doppel-Adreßlistenspeichers 237 (Fig. 4) als Adressen- Identifizierungskennzeichen eingeschrieben, und zwar mit Hilfe des unteren Teils der Hauptspeicheradresse in dem Kanal 266. Der Schreibbefehl umfaßt die Ebene, die den Adressen-Identifizierungskennzeichen zuzuordnen ist. Das Voll/Leer-Bit wird gesetzt.
Man gelangt dann vom Schritt 336 zum Schritt 338. Im Schritt 338 werden die anderen Doppel-Adreßlistenspeicher durch die Doppel- Adreßlisten 74 und 75 überprüft, um festzustellen, ob ein Adressen-Identifizierungskennzeichen existiert, welches dem oberen Teil der Hauptspeicheradresse entspricht. Die überprüften Adressen-Identifizierungskennzeichen stellen die acht Adressen-Identifizierungskennzeichen dar, die dem Vergleicher vom Doppel-Adreßlistenspeicher zugeführt werden, wenn eine Adressierung durch den unteren Teil der Hauptspeicheradresse erfolgt. Man gelangt dann vom Schritt 338 in den Zustand 340. Im Zustand 340 wird eine Überprüfung vorgenommen um festzustellen, ob die Vergleicher 264 in den Doppel-Adreßlisten 74 und 75 irgendeines der Adressen- Identifizierungskennzeichen, die dem Vergleicher von dem Doppel-Adreßlistenspeicher als mit dem oberen Teil der Hauptspeicheradresse übereinstimmend zugeleitet worden sind, identifiziert haben.
Wenn keiner der betreffenden Vergleicher eine Übereinstimmung ermittelt, was bedeutet, daß keines der Adressen-Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt, dann gelangt man auf dem Weg 344 weiter zum Schritt 324. Die Operation setzt sich dann wie oben beschrieben fort. Wenn die Vergleicher 264 in den Doppel-Adreßlisten 74 und 75 feststellen, daß ein Adressen-Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt, dann gelangt man vom Zustand 340 zum Schritt 344. Hier werden wie im Schritt 326 die Löschkommandos mit dem unteren Teil der Hauptspeicheradresse und mit der durch den Vergleicher bereitgestellten Ebene an die in Frage kommende Zentraleinheit 38 oder 39 übertragen. Man gelangt dann auf dem Weg 346 weiter zum Schritt 324.
Wenn im Zustand 332 festgestellt wird, daß der Befehl ein Lese/Lösch-Kommando ist, dann gelangt man zum Schritt 348. Hier werden sämtliche Doppel-Adreßlisten überprüft um festzustellen, ob irgendein Doppel-Adreßlistenspeicher 237 ein Adressen-Identifizierungskennzeichen enthält, welches der durch den Befehl bereitgestellten Adresse entspricht. Im Zustand 350, der dem Schritt 348 folgt, werden die Ausgngssignale sämtlicher Vergleicher 264 überprüft um festzustellen, ob irgendeines der Adressen-Identifizierungskennzeichen mit dem oberen Teil der durch den Befehl bereitgestellten Hauptspeicheradresse übereinstimmt. Die für den Vergleicher bereitgestellten Adressen-Identifizierungskennzeichen sind solche Kennzeichen, die durch den unteren Teil der Hauptspeicheradresse adressiert sind. Wenn keines der Adressen-Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt, so gelangt man vom Zustand 350 auf dem Weg 352 weiter zum Schritt 354. Hier werden die angeforderten Daten vom Hauptspeicher 50 über die Systemsteuereinheit 55 an die Zentraleinheit 37 (Fig. 2) übertragen.
Wenn festgestellt worden ist, daß eines der Adressen- Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt, dann gelangt man vom Zustand 350 zum Schritt 356. Im Schritt 356 wird das Voll/Leer- Bit des betreffenden Adressen-Identifizierungskennzeichens zurückgesetzt, und das Löschkommando wird an die Cachespeichereinheit der zugehörigen Zentraleinheit übertragen. Dann gelangt man vom Schritt 356 weiter zum Schritt 354. Von hier aus gelangt man zurück zur Startposition, d. h. in den Zustand 277.
Wenn im Zustand 286 festgestellt wird, daß das von der Zentraleinheit 37 aufgenommene Kommando ein Lesebefehl ist, dann gelangt man in den Zustand 358. Im Zustand 358 wird das Kommando überprüft um festzustellen, ob ein Eintrag in den Cachespeicher 110 vorzunehmen ist. Wenn das innerhalb des Hauptspeichers 50 (Fig. 2) adressierte Informationssegment in den Cachespeicher 110 (Fig. 3) einzuschreiben ist, gelangt man vom Zustand 358 weiter zum Schritt 360. Im Schritt 360 wird der obere Teil der Hauptspeicheradresse in den Doppel-Adreßlistenspeicher 237 als ein Adressen-Identifizierungskennzeichen eingeschrieben zusammen mit der durch das Lesekommando für den Doppel-Adreßlistenspeicher 237 (Fig. 4) bereitgestellten Ebene. Vom Schritt 360 aus gelangt man zum Schritt 354 und fährt dann wie oben erläutert fort. Wenn während des Schrittes 358 festgestellt wird, daß kein Eintrag in den Cachespeicher 110 (Fig. 3) vorgenommen worden ist, gelangt man auf dem Weg 362 weiter zum Schritt 364. Hier wird dem Doppel-Adreßlistenspeicher 237 der untere Teil der Hauptspeicheradresse des auszulesenden Informationssegments über den Kanal 266 zugeleitet. Der Vergleicher 264 überprüft die von dem Doppel-Adreßlistenspeicher 237 aufgenommenen Adressen-Identifizierungskennzeichen um festzustellen, ob irgendeines der Adressen- Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt. Vom Schritt 364 gelangt man weiter in den Zustand 366. Wenn im Zustand 366 festgestellt wird, daß keines der Adressen-Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt, dann gelangt man vom Zustand 366 auf dem Weg 368 weiter zum Schritt 354. Die Operationsfolge wird dann wie oben bereits erläutert weitergeführt. Wenn der Vergleicher 264 feststellt, daß ein Adressen-Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse übereinstimmt, dann gelangt man zum Schritt 370. Hier wird das Voll/Leer-Bit des betreffenden Adressen-Identifizierungskennzeichens zurückgesetzt. Es sei darauf hingewiesen, daß das entsprechende Voll/Leer-Bit der Cachespeicher- Adreßliste 129 zuvor zurückgesetzt worden ist. Man gelangt dann vom Schritt 370 weiter zum Schritt 354. Die Operation der Doppel-Adreßlisten und der Cachespeicher setzt sich dann auch wieder wie oben erläutert fort.
Nachfolgend wird die Betriebsweise mit den Peripherieeinheiten erläutert. Die Systemsteuereinheiten der Datenverarbeitungsanlage sind mit den verschiedenen vorgesehenen Peripherieeinheiten, die in erster Linie die Eingabe/Ausgabe- Operationen abwickeln, verbunden. Die Datenübertragung zwischen den Peripherieeinheiten und dem Hauptspeicher wird über die Systemsteuereinheiten abgewickelt. Den Peripherieeinheiten werden die von einer bestimmten Zentraleinheit stammenden Befehle ebenfalls über die Systemsteuereinheit zugeleitet. Es handelt sich dabei in der Regel um Lese-, Lösch- und Schreibbefehle für im Hauptspeicher befindliche bzw. in den Hauptspeicher einzuschreibende Informationssegmente oder Datenwörter. Aufgrund solcher Befehle fordert die Peripherieeinrichtung die entsprechend adressierten Datenwörter über die Systemsteuereinheit an, liest diese Datenwörter aus dem Hauptspeicher aus und löscht gleichzeitig diese Datenwörter im Hauptspeicher bzw. schreibt sie unter den bereitgestellten Adressen in den Hauptspeicher ein.
Beim Lesen/Löschen sendet die Systemsteuereinheit die Adressen der betreffenden im Hauptspeicher gelöschten Datenwörter an jede der Doppel-Adreßlisten. Diese verwenden den unteren Teil der Hauptspeicheradresse dazu, auf den in Frage kommenden Satz von Adressen-Identifizierungskennzeichen in der Doppel-Adreßliste zuzugreifen. Der obere Teil der Hauptspeicheradresse wird mit den Adressen-Identifizierungskennzeichen verglichen. Wenn eines der Adressen-Identifizierungskennzeichen mit dem oberen Teil der Hauptspeicheradresse identisch ist und wenn auch das Voll/Leer-Bit, das ein gültiges Datenwort im Cachespeicher anzeigt, gesetzt ist, dann wird das dem bestimmten Adressen-Identifizierungskennzeichen zugehörige Voll/ Leer-Bit in der Doppel-Adreßliste zurückgesetzt, um anzuzeigen, daß dieses im Cachespeicher enthaltene Datenwort nicht mehr gültig ist, was praktisch dessen Löschung bedeutet. Dann wird noch ein Löschsignal an den Cachespeicher ausgesendet, und das Voll/Leer-Bit der Primäradreßliste des Cachespeichers wird ebenfalls zurückgesetzt.
Vorteilhaft ist die Bereitstellung der über Systemsteuereinheiten an die Datenverarbeitungsanlage angeschlossenen Doppel-Adreßlisten zur Sicherstellung, daß keiner von der vorhandenen Vielzahl von Cachespeichern unter gleichen Adressen unterschiedliche Datenwörter oder Informationssegmente enthält, so daß sowohl innerhalb der Cachespeicher als auch in Bezug auf den Hauptspeicher zu jeder Zeit eine absolute Datenkohärenz vorhanden ist.
Vorteilhaft ist weiterhin, daß mit Hilfe der Vielzahl von Doppel-Adreßlisten diese Datenkohärenz auch beim Betrieb der Peripherieeinheiten sichergestellt ist, wobei der Datenaustausch und die Befehlsübermittlung zwischen den einzelnen Einheiten der Datenverarbeitungsanlage und den Peripherieeinheiten über die Systemsteuereinheiten, an die auch die Doppel-Adreßlisten angeschlossen sind, abgewickelt wird. So wird sichergestellt, daß Datenwörter bzw. Informationssegmente, die durch Peripherieeinheiten an bestimmten Speicherplätzen im Hauptspeicher gelöscht oder überschrieben werden, auch in den Cachespeichern aktualisiert werden, so daß auch in ihnen immer mit dem Hauptspeicher übereinstimmende Datenwörter bzw. Informationssegmente gespeichert sind.

Claims (1)

1. Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage mit mehreren zentralen Prozessoren (37, 38, 39) und einem für alle Prozessoren gemeinsamen Hauptspeicher (50), wobei jeder zentrale Prozessor mit einer eigenen Cacheeinheit (41, 42, 43) verbunden ist, die einen Cachespeicher (110) und eine Primäradreßliste (129) umfaßt und wobei in jedem Cachespeicher (110) eine begrenzte Anzahl von Datenworten aus dem Hauptspeicher (50) ein zweites Mal gespeichert sind, die der zugeordnete zentrale Prozessor verarbeitet oder generiert, und in der Primäradreßliste (129) die Adressen dieser im Cachespeicher (110) enthaltenen Datenworte gespeichert sind, und mit jeder Cacheeinheit (41, 42, 43) zugeordneten Doppeladreßlisten (73, 74, 75), in der dieselben Adressen ein zweites Mal gespeichert sind, die schon in den zugeordneten Primäradreßlisten (129) gespeichert sind, wobei der aktive Prozessor (z. B. 37) bei einer Schreiboperation die Daten in seinem Cachespeicher (110) und in dem Hauptspeicher (50) ändert und dieselben Adressen in den Doppeladreßlisten (z. B. 74, 75) und zugeordneten Primäradreßlisten der anderen zentralen Prozessoren (z. B. 38, 39) ungültig markiert werden, dadurch gekennzeichnet, daß an jede Cacheeinheit (41, 42, 43) eine eigene Systemsteuereinheit (55, 58, 59) angeschlossen ist, über die der Hauptspeicher (50) mit den zentralen Prozessoren (37, 38, 39) über Busleitungen (69, 53, 45; 70, 61, 47; 71, 62, 48) die Übertragung der gelesenen oder zu schreibenden Datenworte abwickelt, daß jede Systemsteuereinheit mit jeder anderen Systemsteuereinheit über Steuerbusleitungen (64, 65, 67) und jede Systemsteuereinheit (55, 58, 59) mit Peripherieeinheiten (24, 25) verbunden ist, daß an jede Systemsteuereinheit (z. B. 55) die ihr zugeordnete Doppeladreßliste (73) über einen ersten Datenkanal (77) angeschlossen ist und daß jede Systemsteuereinheit (z. B. 55) über zweite Datenkanäle (84) und weitere Datenkanäle (88) mit der zweiten Doppeladreßliste (74) und weiteren Doppeladreßlisten (75) verbunden ist.
DE19803046912 1979-12-14 1980-12-12 Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage Expired - Fee Related DE3046912C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10380479A 1979-12-14 1979-12-14

Publications (2)

Publication Number Publication Date
DE3046912A1 DE3046912A1 (de) 1981-09-03
DE3046912C2 true DE3046912C2 (de) 1994-05-11

Family

ID=22297115

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19803046912 Expired - Fee Related DE3046912C2 (de) 1979-12-14 1980-12-12 Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage

Country Status (6)

Country Link
JP (1) JPS5698769A (de)
AU (1) AU543278B2 (de)
CA (1) CA1159153A (de)
DE (1) DE3046912C2 (de)
FR (1) FR2472232B1 (de)
GB (1) GB2065941B (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399506A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Store-in-cache processor means for clearing main storage
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
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
JPH01115358A (ja) * 1987-10-30 1989-05-08 Toru Ishiwatari 鎌倉彫を施した棺の製造方法
US5226039A (en) * 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5282201A (en) * 1987-12-22 1994-01-25 Kendall Square Research Corporation Dynamic packet routing network
US5761413A (en) 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
GB2216308A (en) * 1988-03-01 1989-10-04 Ardent Computer Corp Maintaining cache consistency
US5153595A (en) * 1990-03-26 1992-10-06 Geophysical Survey Systems, Inc. Range information from signal distortions
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
CA2078312A1 (en) 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3771137A (en) * 1971-09-10 1973-11-06 Ibm Memory control in a multipurpose system utilizing a broadcast
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
JPS5440182B2 (de) * 1974-02-26 1979-12-01
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
US4020466A (en) * 1974-07-05 1977-04-26 Ibm Corporation Memory hierarchy system with journaling and copy back
JPS5295128A (en) * 1976-02-06 1977-08-10 Hitachi Ltd Information processing device
JPS5361236A (en) * 1976-11-12 1978-06-01 Fujitsu Ltd Memory access control system
US4136386A (en) * 1977-10-06 1979-01-23 International Business Machines Corporation Backing store access coordination in a multi-processor system
DE2947115A1 (de) * 1978-12-11 1980-06-26 Honeywell Inf Systems Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem

Also Published As

Publication number Publication date
DE3046912A1 (de) 1981-09-03
AU543278B2 (en) 1985-04-18
FR2472232A1 (fr) 1981-06-26
GB2065941B (en) 1984-02-29
AU6532480A (en) 1981-06-18
JPS5698769A (en) 1981-08-08
CA1159153A (en) 1983-12-20
FR2472232B1 (fr) 1988-04-22
GB2065941A (en) 1981-07-01

Similar Documents

Publication Publication Date Title
DE3011552C2 (de)
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE2240433C3 (de) Hierarchische Datenspeicheranordnung für mehrere über Pufferspeicher angeschlossene Einheiten und ein Verfahren zu deren Betrieb
DE3131341C2 (de)
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE2515696C2 (de) Datenverarbeitungssystem
DE2241257C3 (de) Datenverarbeitende Anlage
DE3151745C2 (de)
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE1499182C3 (de) Datenspeichersystem
DE2154106A1 (de) Arbeitsspeicherwerk
DE3724730A1 (de) Cache-steuereinrichtung
DE3502147C2 (de)
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE2422732C2 (de) Hierarchische Speicheranordnung
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
EP1079307B1 (de) Verfahren zum Betrieb eines Speichersystems sowie Speichersystem
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE1774211C3 (de) Datenspeicheranordnung für ein Datenverarbeitungssystem
EP1559111B1 (de) Verfahren zum betreiben einer speicheranordnung
DE2355814C2 (de) Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 12/12

8127 New person/name/address of the applicant

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

8127 New person/name/address of the applicant

Owner name: BULL HN INFORMATION SYSTEMS INC., WILMINGTON, DEL.

D2 Grant after examination
8363 Opposition against the patent
8327 Change in the person/name/address of the patent owner

Owner name: BULL HN INFORMATION SYSTEMS INC., BILLERICA, MASS.

8339 Ceased/non-payment of the annual fee