[go: up one dir, main page]

DE2515696C2 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

Publication number
DE2515696C2
DE2515696C2 DE2515696A DE2515696A DE2515696C2 DE 2515696 C2 DE2515696 C2 DE 2515696C2 DE 2515696 A DE2515696 A DE 2515696A DE 2515696 A DE2515696 A DE 2515696A DE 2515696 C2 DE2515696 C2 DE 2515696C2
Authority
DE
Germany
Prior art keywords
memory
cache memory
address
cache
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
Application number
DE2515696A
Other languages
English (en)
Other versions
DE2515696A1 (de
Inventor
Riley H. Scottsdale Ariz. Dobberstein
Ronald Edwin Phoenix Ariz. Lange
Steven Hugh Groton Mass. Webber
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
Honeywell 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 Honeywell Information Systems Inc filed Critical Honeywell Information Systems Inc
Publication of DE2515696A1 publication Critical patent/DE2515696A1/de
Application granted granted Critical
Publication of DE2515696C2 publication Critical patent/DE2515696C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

Landscapes

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

Description

Die Erfindung bezieht sich auf ein Datenverarbeilungssystem mit einem Prozessor, mit einem Hauptspeicher, mit einem Cache-Speicher und mit einem Eingabe/ Ausgabe-Prozessor, wobei mil einem virtuellen Speicher gearbeitet wird, in welchem Programme in Segmenten organisiert sind, die jeweils aus mehreren Seiten bestehen, deren jede eine Vielzahl von Datenwörtern enthält, welche auf das Auftreten von Lesebefehlen hin aus dem Hauptspeicher in den Cache-Speicher einschreibbar sind.
Ein Cache-Speicher ist ein kleiner, ieicht zugänglicher Speicher, der in der Zentraleinheit eines Datenverarbeitungcsystems untergebracht ist, wobei der Cache-Speicher einen Teil der Größe des Hauptspeichers ausmacht, jedoch einen schnelleren Zugriff zu gespeicherten Dateninformation ermöglicht als ein Zugriff zu dem
ίο Hauptspeicher. Operanden und Befehle, im folgenden generell als Daten bezeichnet, werden aus dem Hauptspeicher abgerufen und in dem Cache-Speicher gespeichert. Die Zentraleinheit nimmt dann einen Zugriff für die benötigten Daten, zuerst zu dem Cache-Speicher vor. Die in dem Cache-Speicher gespeicherten Daten werden durch den ersten Zugriff der Zentraleinheit zu dem Hauptspeicher hin erhalten. Die abgeführten Daten werden von der Zentraleinheit benutzt und gleich zeitig in dem Cache-Speicher gespeichert
Die Cache-Speicher-Wirksamkeit hängt davon ab, daß die Zentraleinheit dieselben Daten ein zweitesmal und möglicherweise mehrmals während desselben Programms benutzt Es gibt Zeiten, wie bei der Beendigung eines vollständigen Programms, zu denen die beste Ausnutzung des Cache-Speichers darin besteht, ihn vollständig zu löschen, und zwar in Erwartung der ersten Benutzung von Daten des nächsten Programms. Dies ist wahrscheinlich das effektivste Löschen des Cache-Speichers, wobei die einzige bekannte Größe das Programm ist, das verarbeitet wird. Im Falle der Anwendung eines Datenverarbeitungssystems, welches eine Segment- und Seitenbildung für den Zugriff zu dem Hauptspeicher enthält, wird jedoch eine weitere bekannte Größe in das Programm eingeführt; gemäß dieser Größe kann in dem Fall, daß ein Segment nicht mehr von Nutzen ist, der gesamte Cache-Speicher gelöscht werden, da ein Segment im allgemeinen viel größer ist als der Cache-Speicher. Das Segment in der Programmunterteilungs-Wiederauffindung eines Speichers ist in kleinere Bereiehe unterteilt, die im allgemeinen als Seiten bezeichnet werden und die üblicherweise 1000 Wörter umfassen. Diese Größe ist jedoch kleiner als die Größe des Cache-Speichers. Deshalb wäre ein selektives Löschen in dem Fall von Vorteil, daß durch den verarbeiteten Befehl festgelegt ist, daß eine Dateninformations-Seite nicht mehr benötigt wird und daß eine neue Seite desselben Segments erforderlich ist.
Eine allgemeine Löschoperation für einen Cache-Speicher besteht darin, den gesamten Cache-Speicher auf sämtliche externen Unterbrechungsoperationen hin zu löschen. Diese Unterbrechungsoperationen zeigen an, daß gegebenenfalls die in dem Hauptspeicher enthaltenen Daten durch die Operationen der Eingabe/ Ausgabe-Steuereinrichtung geändert worden sind und daß daher die Daten in dem Cache-Speicher unzutreffend sein können. Obwohl diese Art des Löschens vielleicht mechanisch abläuft, ist sie zwangsweise und führt zu einem erheblichen unnötigen Löschen der Dateninformation aus dem Cache-Speicher. Gegebenenfalls ist lediglich 50% der Eingabe/Ausgabe-Operation eingabeorientiert, was zur Änderung des Hilfsspeichers oder Hauptspeichers führen würde, wobei lediglich während eines kleinen Bruchteils der Zeit diese Daten in dem Cache-Speicher vorhanden wären. Die Löschwirkung führt zum Löschen des gesamten Cache-Speichers, weshalb wesentlich mehr Dateninformation verloren ist und im nächsten Zugriff zu dem Hauptspeicher wieder bereitgestellt werden muß.
Die Anwendung eines Cache-Speichers in einem Mehrprozessor-Betrieb bringt zusätzliche Probleme mit sich. Dabei antwortet lediglich eine Zentraleinheit auf externe Unterbrechungssigriale. Das Löschen des Cache-Speichers jeweils dann, wenn ein Prozessor eine Tastungs- bzw. Ausblendroutine in den Hauptspeicher einführt, stellt eine Verbesserung gegenüber dem Löschen des Cache-Speichers auf jede Eingabe/Ausgabe-Operation hin dar. Diese Verbesserung bezüglich der Löschoperation hat jedoch dazu geführt, daß der Cache-Speicher bezüglich der Schutz-Eintastroutine und deren Tabellen in dem Hauptspeicher und ferner bezüglich Nebenprogrammen gelöscht wird, die alternativ in jeden Prozessor ausgeführt werden. Diese Verbesserung der Löschoperation bezüglich des Cache-Speichers ist an anderer Stelle näher beschrieben (siehe US-PS 38 45 474).
Die oben erwähnten bekannten Verfahren führen einen effektiven Ablauf des Löschens des Cache-Speichers auf Operationen hin aus, in denen ein ' ,öschen des Cache-Speichers möglicherweise gefordert ist. Die betreffenden oben erwähnten Verfahren löschen den Cache-Speicher jedoch in einer übermäßigen Häufigkeit.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, die Leistungsfähigkeit eines mehrere Prozessoren verwendenden und mit einem Cache-Speicher arbeitenden Datenverarbeitungsystems im Hinblick auf den Betrieb dieses Cache-Speichers zu steigern.
Gelöst wird die vorstehend aufgezeigte Aufgabe dadurch, daß bei einem Datenverarbeitungssystem der eingangs genannten Art auf das Auftreten eines die Entfernung eines Segmentes aus dem Hauptspeicher bev, irkenden Steuerprogrammbefehls hin der gesamte Inhalt des Cache-Speichers in dem Fall löschbar ist, daß Datenwörter des betreffenden Segmentes in dem Cache-Speicher gespeichert sind, daß auf das Auftreten eines die Entfernung einer Seite aus dem Hauptspeicher bewirkenden Steuerprogrammbefehls hin sämtliche Datenwörter der betreffenden Seite eines in dem Cache-Speicher gespeicherten Segmentes in dem Cache-Speicher löschbar sind und daß auf das Einschreiben gesonderter Datenwörter in eine Seite des Hauptspeichers hin sämtliche Datenwörter der betreffenden Seite eines in dem Cache-Speicher gespeicherten Segmentes in dem Cache-Speicher löschbar sind.
Im Zusammenhang mit den erfindungsgemäß vorzunehmenden Prozeduren wird eine Seitenadresse der Programmunterteilungs- und Seitenbildungsdaten-WiederbereitstellungTanordnung selektiv eingeschaltet. Ferner wird eine Reihe von Adreßmarken aus einer Cache-Markenadreßliste parallel ausgelesen, die durch den niedrige Wertigkeit besitzenden Adreßteil adressiert ist, der ferner eine entsprechende Reihe von Dateiiwörtem in dem Cache-Speicher identifiziert. Die Cache-Markenadreßliste, der Cache-Speicher und die Steuerlogik bilden einen Teil der Zentraleinheit des Datenverarbeitungssystems.
Der Markenadreßliste is; eine Statusanzeigeanordnung zugehörig, die eine Voll-Leer-Status-Anzeige für die jeweilige Adressenstelle liefert, d. h. für jede Spalte jeder Ebene der Markenadreßliste. Die Statusanzeigeanordnung zeigt den Eintrag von gültigen Daten in die Cache-Speichereinheit an, und zwar durch Decodierung der den Anzeigestatus speichernden Speichereinheil. Wenn nun ein Befehl zum Löschen des Programmunterleilungs-Asso/.iativspeichers auftritt, der die Adressen eier Segmente in dem Hauptspeicher speichert, wird der gesamte Cache-Speicher gelöscht, und /war durch Löschen der Voll-Leer-Speichereinheit, die auf die Marken-Adreßliste in dem Cache-Speicher hinseigL Wenn ein Befehl zum Löschen eines Seiten-Bereichs der wieder bereitgestellten Daten aus dem Seiten-Assoziativ-Speicher ermittelt wird, der die Adressen der Gruppen der Dateninformation der Segmente speichert, werden lediglich die Daten in dem Cache-Speicher, auf die durch die Seitenandresse Bezug genommen ist, gelöscht Die Adressen für in dem Cache-Speicher untergebrach-W Daten werden in einer Marken- bzw. Markierungs-Adreßliste gespeichert, die aus einer Vielzahl von Spalten und aus einer Vielzahl von Ebenen besteht Die Cache-Adresse wird sequentiell in den Spalten der Markierungs-Adreßliste untergebracht, und zwar in Überein-Stimmung mit der Ebenen-Adresse der Markierungs-Adreßliste. Um eine Dateninformation aus dem Cache-Spek+ier zu suchen, werden die Ebenen der Markierungs-Adreßliste durch die Cache-Adresse adressiert. Die aus den Spalten der adressierten Ebene wieder gewonnene Information wird mit der tatsächlichen Adresse der geforderten Daten verglichen; wenn eine Übereinstimmung signalisiert wird, wird die Dateninformation in dem Cache-Speicher untergebracht bzw. festgelegt und für die Verwendung durch die Zentraleinheit wiedergefunden.
Dieselbe Ablauffolge wird benutzt, um die zu löschende Dateninformation in dem Cache-Speicher festzulegen. Um eine Seitenstelle zu löschen, wird die Seitenadresse an den Vergleicher abgegeben, und die Cache-Ebenenadresse wird ihrerseits erhöht, um sequentiell die jeweilige Ebene zu adressieren. Wenn eine Übereinstimmung in irgendeiner der vier Spalten irgendeiner adressierten Ebene ermittelt wird, wird das Voll-Leer-Markierungsbit gelöscht. Das Voll-Leer-Markierungsbit wird durch dieselben Ebene-Adressensignale adressiert, die an die Marken-Adreßliste abgegeben worden sind. Das Löschen der Voll-Leer-Bits legt fest, daß die in dem Cache-Speicher verbleibenden Daten ungültig und daher zu ersezten sind.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert.
F i g. 1 zeigt in einem Blockdiagramm ein Datenverarbeitungssystem mit einem Cache-Speicher in einer Zentraleinheit.
F i g. 2 zeigt in einem Blockdia tramm eine Nachrichtenverbindungs-Steueranordnunj: sowie einen Cache-Speicherbetrieb der in Fig. 1 dargestellten Zentraleinheit.
Fig. 3 zeigt in einem Diagramm das Adressierungsprinzip, das in dem in Fig. 2 dargestellten Cache-Bereich benutzt ist.
Fig. 4 zeigt in einem Blockdiagramm eine Marken-Adreßliste mit einem Vergleicher sowie die Abbildungs-Strategie zwischen dem in F i g. 2 dargestellten Cache-Speicher und dessen Marken-Adreßliste.
Fig. 5 zeigt in einem Verknüpfungsdiagramm eine Anzeigeschaltungs-Steuerlogik für die in Fig. 2 dargestellte Marken-Adreßliste.
F i g. 6 zeigt in einem Verknüpfungsdiagramm eine die Anzeigeschaltung gemäß Fig. 5 steuernde Cache-Speicher-Löschschaltung.
Fig. 7 zeigt in einem Verknüpfungsdiagramm eine durch Prozessoroperation gesteuerte Cache-Speicher-Löschschaltung, die die Anzeigeschaltung gemäß F i g. 6 steuert.
F i g. 8 zeigt ein Verknüpfungsdiagramm eines in der Schaltung nach F-* i g. 6 vorgesehenen Binärzählers.
Im folgenden wird die bevorzugte Ausführungsform
der Erfindung erläutert. In Fig. 1 ist eine charakteristische Konfiguration eines Datenverarbeitungssystems gezeigt. Das dargestellte Datenverarbeitungssystem enthält eine Zentraleinheit 2 (CPU), eine Systemsteuereinheit 3 (SCU) und einen Hilfsspeicher 4. Die Verbindung mit einer Reihe von peripheren Geräten wird durch einen Block 5 gesteuert, der mit Eingabe/Ausgabe-Steuereinrichtung und periphere Geräte bezeichnet ist. Die Systemsteuereinheit 3 steuert die Verbindung bzw. den Informationsaustausch zwischen den Einheiten des Datenverarbeitungssystems. Demgemäß stehen die peripheren Geräte in Datenaustausch mit dem Hilfsspeicher 4 und der Zentraleinheit 2 über die Eingabe/ Ausgabe-Steuereinrichtung 5, während die Systemsteuereinheit 3 einen Zugriff zu dem Hilfsspeicher 4 und der Zentraleinheit 2 steuert.
Die Zentraleinheit 2 enthält eine Operationseinheit 6, die Rechen- und Verknüpfungsoperalionen mit Operanden ausführt, die aus einem Speicher gemäß Befehlen abgerufen werden, welche ebenfalls aus dem Speicher abgerufen worden sind. Eine Verarbeitungseinheit 7 steuert die weiteren Verknüpfungssteuereinrichtungen und Operationen, die von der Zentraleinheit ausgeführt werden. Die Zentraleinheit 2 enthält als Teil ihres Speichers einen Cache-Speicher mit zugehöriger Steuerlogik, die als Cache-Bereich 11 dargestellt ist. Verschiedene Daten-Bus-Schalter führen die Daten-Schnittstellenfunktionen in der Zentraleinheit 2 aus; sie enthalten einen ZDO-Schalter 8, einen ZM-Schaltcr 12, einen ZD-Schalter 13, einen ZA-Schalter 14a und einen ZB-Schalter 14£>. Die Steuerung der Schnittstellenfunktionen der Zentraleinheit 2 — einschließlich der Bildung der absoluten Adressen — wird durch eine Datenübertragungssteuereinheit 15 augeführt. Ein Speicher-Operandenpuffer 9 stellt einen Zwischenregister Speicher zwischen der Verarbeitungseinheit 7 und dem Cache-Bereich 11 dar.
Die in F i g. 1 dargestellten Doppelleitungen veranschaulichen den Weg, den die Dateninformation nimmt bzw. entlanggeführt wird, während die die Datenübertragung steuernden Steuerleitungen jeweils durch eine einzelne voll ausgezogene Linie dargestellt sind.
Der ZD-Schalter 13 steuert den Eintrag von Daten in den Prozessor bzw. die Zentraleinheit 2 über die Eingabe-Speicher-Busleitung. Die Daten werden entweder durch Aktivieren des ZA-Schalters 14/4 in die Operationseinheit 6, durch Aktivieren des ZB-Schalters 14i> in die Verarbeitungseinheit 7 oder durch Aktivieren des ZM-Schalters 12 in den Cache-Bereich 11 oder durch Aktivieren einer Kombination der Daten-Busleitungs-Schalter in irgendeine Kombination der Einheiten geschaltet. Mit dem innerhalb der Zentraleinheit selbst befindlichen Cache-Bereich 11 kann die Zentraleinheit der Systemsteuereinheit 3 signalisieren, einen Block, von Wörtern (das sind vier Wörter bei der vorliegenden Ausführungsform) in den Cache-Bereich 11 zu übertragen, während ein Wort zur Operationseinheit 6 hin übertragen wird. Ein Wort wird über die Eingabe-Speicherbusleitung sowie den ZD-Schalter 13 und über den ZA-Schalter 14a in die Operationseinheit 6 übertragen. Zu diesem Zeitpunkt wird ferner der ZM-Schalter 12 aktiviert, um das Wort in den Cache-Bereich 11 zu speichern. Die Operationseinheit 6 arbeitet auf das Datenwort hin, und zwar bei geschlossenem ZA-Schalter 14a. Der ZD-Schalter 13 und der ZM-Schalter 12 bleiben offen, um die übrigen Wörter des Blockes in dem Cache-Bereich 11 aufzunehmen. Die Operationseinheit 6 und/ oder die Verarbeitungseinheit 7 können von der Block-Übertragung bis auf das Anfangs-Speicherwiederauffindungssignal nicht unterrichtet sein, welches von der Datenübertragungssteuereinheit 15 gespeichert ist. Das selektive Löschen ist bei der vorliegenden Ausführungsform im Zusammenhang mit einem Programmunterteilungs- und Seitenbildungsverfahren für einen Zugriff zu dem Hilfsspeicher 4 dargestellt. Um den Hilfsspeicher zu adressieren, ist ein Zugriff zu einem Seiten-Assoziativspeicher 40 und zu einem Segment-Assoziativspci-
Ki eher 41 erforderlich, um die Adresse der Segmente und der Seiten der Segmente in dem Hilfsspeicher 4 festzulegen. Beide Assoziativspeicher sind Markierungs-Adreßlisten, die auf Adressen in dem Hilfsspeicher hinzeigen und die ein Kennzeichen der Segmente der Daten und der Seiten der Segmente enthalten, welche aus anderen Speichern wieder bereitgestellt worden sind. Wenn die Zentraleinheit die Anwendung von Seiten der Segmente und der Segmente selbst beendet hat, folgt eine Wechselprozedur, die die Seite oder das Segment aus dem Speicher in den Assoziativspeichern löscht und dadurch effektiv die Seite und die Segmente aus dem Hilfsspeicher löscht. Die nächste Seite oder das nächste Segment der Dateninformation wird dann aus dem Speicher wieder herausgeführt, wie dem virtuellen Speieher, und in dem Hilfsspeicher untergebracht, wobei das Kennzeichen wieder in dem Seiten-Assoziativspeicher und dem Segment-Assoziativspeicher gespeichert wird.
Wie in Fig. 1 dargestellt, ist der Cache-Bereich 11
über eine Adressen-Busleitung mit dem Seiten-Assoziativspeicher 40 verbunden. Der Cache-Bereich 11 kann selektiv bezüglich seiner gesamten gespeicherten Information gelöscht werden, welche sich auf die Seite der Dateninformation bezieht, die in dem Seiten-Assoziativspeicher gespeichert ist. Bei der vorliegenden Ausführungsform kann der Cache-Speicher in dem Cache-Bereich bzw. Cache-Abschnitt 11 bis zu 2 K Dateninformationswörtern speichern; die maximale Größe einer einzigen Dateninformationsseite beträgt 1 K Worte. Deshalb würde eine Seite höchstens eine Hälfte des Cache-Speichers ausnutzen. Das selektive Löschen des Cache-Speichers wird weiter unten noch näher beschrieben werden.
Der Cache-Speicher des Cache-Abschnittes bzw. -Bereiches 11 ist ein nach dem Prinzip »der Überprüfung der Seiteninformationen« arbeitender Speicher oder ein Hochgeschwindigkeits-Pufferspeicher. Der Cache-Speicher liefert einen schnellen Zugriff zu Datenblöcken, die zuvor aus dem Hilfsspeicher 4 aufgefunden worden sind und die gegebenenfalls später aktualisiert werden. Die effektive Zugriffszeit in dem Cache-Speicher wird dadurch erzielt, daß der Cache-Speicher parallel für die vorhandenen Zentralcinhcitsfunkticr.en betrieben, wird. Die erfolgreiche Ausnutzung des Cache-Speichers erfordert, daß das Verhältnis der Abrufe von Dateninformationen aus dem Cache-Speicher groß gemacht wird, und zwar anstatt der Forderung nach direktem Zugriff zu dem Hilfsspeicher durch die Zentraleinheit In jedem Fall sollte die Suche des Cache-Speichers bezüglich der gegebenenfalls schnellen Wiederauffindung der Dateninformation die Wiederauffmdung aus dem Hilfsspeicher nicht verzögern. Das System gemäß der bevorzugten Ausführungsform überprüft den Cache-Speicher, während die Erzeugung einer möglichen Wiederbereitstellung aus dem Hilfsspeicher verarbeitet wird. Wenn die Dateninformation in dem Cache-Speicher ermittelt wird, wird die Wiederauffindung bzw. Wiederbereitstellung aus dem Hilfsspeicher gesperrt Die Operationseinheit 6 und die Verarbeitungseinheit 7 erhalten die Da-
teninformation von dem Cache-Bereich 11 über den ZD-Schalter 13 in einer wesentlich kürzeren Zeitspanne, ohne daß die Einheit der Quelle gewahr wird. Eine ausführlichere Beschreibung der Cache-Bereichs-Datenübertragungs-Steuereinheit findet sich an anderer Stelle (US-PS 3866 183). In Fig.2 ist ein Blockdiagramm des Cache-Bereichs 11 gezeigt, der den Cache-Speicher 10 und Teile der Datenübertragungssteuereinheit 15 enthält.
Gemäß Fig. 2 enthält der Standard-Datenverarbeitungs-Datenübertragungs-Steuerbereich 15 eine Unterbrechungsgeneratorschaltung 16, eine Anschlußauswahlmatrix-Schaltung 17, ein Basisadreßregister 18, einen Basisadreßaddierer 19, ein Adreßregister 21, eine Zentraleinheit-Adreßlisten-Befehlseinrichtung 22 und eine Zentraleinheit-Steuerlogik 23, welche die Steuerlogik der Zentraleinheit bzw. des Prozessors darstellt. Ein ZC-Schalter 20 steuert die Eingabe der Speicheradresse für die Wiederauffindung der Dateninformation aus dem Speicher, bei dem es sich entweder um den Cache-Speicher 10 oder um den Hilfsspeicher 4 gemäß F i g. 1 handeln kann. Die Speicheradresse wird von der Verarbeitungseinheit her erhalten, um die Dateninform gemäß den Adreß-Signalen wieder aufzufinden. Der Cache-Bereich 11 enthält den Cache-Speicher 10, einen ZE-Schalter 26, ein Cache-Adressenverriegelungsregister 27, eine Markierungs-Adreßliste 28, einen Vergleicher 29, ein Cache-Adreßregister 30 und zugehörige Zähler sowie eine Steuerlogik, wie dies durch den Block 31 veranschaulicht ist.
Die Cache- oder Markierungs-Adreßliste 28 legt den Speicherabschnitt oder Speicherblock in dem Cache-Speicher 10 fest, in der Markierungs-Adreßliste 28 werden »Markierungsw-Wörter gespeichert, um die absolute Adresse des jeweiligen Datenblockes wiederzugeben. Die Abbildung der Markierungs- bzw. Marken-Adreßliste 28 gemäß der bevorzugten Ausführungsform wird als Vier-Ebenensatz-Assoziativabbildung bezeichnet. Die Abbildungsorganisation ist in Fig.4 gezeigt. Die Markierungs-Adreßliste ist in NSpalten, zum Beispiel in 128 Spalten, unterteilt, und zwar entsprechend der Anzahl der Blöcke in dem Cache-Speicher. Jede Spalte weist vier Ebenen bzw. Stufen auf. Ein 2 K-Cache-Speicher ist somit in 128 4-Wortblöcke unterteilt. Jeder Block ist direkt in einer entsprechenden Spalte der Adreßliste abgebildet. Jede Spalte der Markierungs-Adreßliste enthält Adressen von vier Blöcken, und zwar jede von einem anderen Abschnitt.
Die Austauschprozedur zum Zwecke des Ladens von neuen Blöcken in eine Spalte, die voll ist, erfolgt auf der Grundlage, daß die erste eingegebene Information die erste abgeführte Information ist Diese Organisation wird als Umlauforganisation (RRO) bezeichnet.
Die Markierungs-Adreßliste 28 ist als kleiner Speicher ausgeführt, dessen Anzahl an Speicherplätzen gleich der Anzahl der Blöcke in dem Cache-Speicher ist. Die Spalten der Markierungs-Adreßliste 28 werden adressiert und durch die effektiven Adressensignale ZC(B-15 festgelegt Jede Spalte weist vier Ebenen bzw. Stufen auf, in denen die gespeicherten Adressensignale /4L 00—08 gespeichert sind, die auf einen bestimmten Block in dem Cache-Speicher 10 hinweisen. Um die bestimmte Stufe der Markierungs-Adreßliste und den bestimmten Speicherplatz der Dateninformation in dem Cache-Speicher festzulegen, ist eine Umlaufschaltung erforderlich. Die Unterbringung der gespeicherten Adressensignale AL 00—08 hoher Wertigkeit in den Stufen der Markierungs-Adreßliste 28 wird durch einen Ebenen- bzw. Stufen-Wähler 25 gesteuert. Der Stufen-Wähler 25 führt das Signal AL 00-08 in die Markierungs-Adreßliste 28 ein, und zwar in Übereinstimmung mit der Umlaufschaltung. Die Umlaufschaltung, die gemäß der vorliegenden Erfindung verwendet wird, kann ein 2-Bit-Speicherabschnitt sein, der durch dieselben Signale adressiert wird, wie die Markierungs-Adreßliste 28. Ein kombinierter Voll-Leer-Speicher, der den Voll- oder Leer-Status der jeweiligen Spalte der
ίο jeweiligen Stufe bezeichnet, und ein Umlaufzähler sind in F i g. 5 gezeigt und werden weiter unten noch näher erläutert werden.
Der Cache-Speicher 10 der bevorzugten Ausführungsform speichert 2048 Datenbits DO— DN in jedem Chip-Abschnitt, wobei jedes Wort eine Länge von 36 Informationsbits in jeder Speicherhälfte oder 72 Informationsbits in den kombinierten Speicherabschnitten umfaßt. Der Cache-Speicher 10 weist vier Stufen auf, zu denen ein Zugriff durch die Adressensignale CA und CB von dem Vergleicher 29 her erfolgt Die Auslese-Dateninformationssignale D0m„—DN„u, sind für sämtliche vier Stufen gemeinsam.
Der Cache-Speicher 20 wird durch die Cache-Adressensignale CSOO-10, die durch die Adressensignale ZC09—17 niedriger Wertigkeit gebildet sind, zusammen mit den Signalen CA und CB adressiert (siehe F i g. 2 und 3). Die Signale ZC16 und ZC17 geben an, ob das adressierte Wort in der oberen Hälfte oder in der unteren Hälfte des Speicherblocks ist oder ob ein Zugriff zu einem Doppelwort (beide Hälften) gleichzeitig zu erfolgen hat.
Die Datensignale DO—DNsind Dateneingabesignale (siehe F i g. 2), die durch den ZM-Schalter 12 eingegeben werden; die Signale D0—DNou, sind Datenausgabesignale, die den Hauptregistern der Zentraleinheit über den ZD-Schalter 13 zugeführt werden.
Im folgenden seien die F i g. 2 und 4 näher betrachtet. Die in der Markierungs-Adreßliste 28 gespeicherte Dateninformation ist die Hauptspeicheradresse der in dem Cache-Speicher 10 gespeicherten Daten. Dabei sind lediglich neun Adressenbits in der Markierungs-Adreßliste 28 gespeichert. Diese Bits sind die Adressenbits AL 00—08, die von dem Adreßregister 21 über den Schalter 26 zu der Markierungs-Adreßliste hin geleitet werden. Durch Adressieren der Spalte der Markierungs-Adreßliste 28 durch die effektiven Adressensignale ZC09—15 wird somit die in dem Cache-Speicher 10 gespeicherte Blockwort-Information erhalten. Die in der adressierten Spalte gespeicherte Adresseninformation wird in dem Vergleicher 29 mit den Hauptspeicher-Speicheradressen-Signalen ALOO—08 verglichen, die von der Zentraleinheit angefordert sind. Diese Signale ALOO—08 sind entweder von dem Adreßregister für die Überprüfung der Wiederauffindung einer Dateninformation in bzw. aus dem Cache-Speicher 10 oder für den Vergleich mit der Seitenadresse verfügbar, wenn der Cache-Speicher selektiv zu löschen ist, und zwar auf Assoziativ-Speicher-Seiten-Löschbefehle (CAMP) hin, wie dies nachstehend noch beschrieben werden wird.
Der Vergleicher 29 enthält im wesentlichen vier Gruppen einer Vielzahl von Vergleicherschaltungen (neun bei der vorliegenden Ausführungsform), die neun Adressensignale von jeder der vier Stufen bzw. Ebenen der Markierungs-Adreßliste — das sind die Signale M1, M 2, M 3 und M 4 — mit den neun Adressensignalen AL 00—08 vergleichen. Wird eine Übereinstimmung durch sämtliche Signale in jeder Neun-Signal-Vergleicherschaltung Nr. 1, Nr. 2, Nr. 3 oder Nr. 4 erreicht und
enthielt die Stufe gültige Daten, so erzeugt der Vergleicher 29 ein Übereinstimmungs-Signal, das von einem ODER-Glied 29a (siehe F i g. 4) abgegeben wird, um einen Unterbrechungsgenerator 16 an der Erzeugung eines Unterbrechungssignals INT zu hindern. Die Wiederauffindung bzw. Wiederbereitstellung der Dateninformation erfolgt dann aus dem Cache-Speicher 10 anstatt aus dem Hauptspeicher.
Die Cache-Speicher-Adressensignale CS00—10 (siehe Fi g. 2 und 3) werden von Vergleicherlogik und der effektiven Adresse gebildet. Sodann erfolgt eine Abspeicherung in dem Cache-Adreßregister 30. Die 11 -Bit-Adresse führt zu einem Zugriff zu einem 2048-Wort-Cache-Speicher. Die 11-Bit-Adresse benutzt die Adressensignale CA und CB von dem Vergleicher 29; diese Signale sind aus den Vergleicherbits CCl-4 von der Markierungs-Adreßliste 28 her und den Bits ZC09—17 von der effektiven Adresse gebildet.
Im folgenden sei auf F i g. 4 und 5 Bezug genommen, gemäß denen ein 4-zu-2-Decoder 29b des Vergleichers 29 aus ODER-Gliedern 32,33 und 34 in Verbindung mit UND-Gliedern 35 und 36 besteht, um die Vergleicherbitsignale CC 1-4 zu decodieren. Die ODER-Glieder 37 und 38 erzeugen die Adressensignale CA und CB, und zwar entweder aus den Vergleicherbit-Signalen CCl-4 auf eine Lese-Cache-Speicher-Operation hin oder aus den Umlaufsignalen RR 1 und RR 2 auf eine Schreib-Cache-Speicher-Operation hin. Ein Inverter 70 sperrt die UND-Glieder 71 und 72, falls irgendeines der Vergleichersignale CCl-4 auf einen korrekten Vergleich hin freigegeben ist. Werden keine eine Übereinstimmung betreffende Signale freigegeben, so werden die UND-Glieder 71 und 72 an jeweils einem Anschluß hinsichtlich der Vorbereitung einer Schreib-Cache-Speicher-Operation freigegeben. Die Umlaufzählersignale RR 1 und RR 2 legen die Ebenen bzw. Stufen der Spalten fest, die die nächste Dateninformationsadresse aufzunehmen haben. Die Umlaufzählersignale RR 1 und RR 2 werden decodiert, um die Signale A, B, Cund D zu erzeugen, die dem Stufen-Wähler 25 zugeführt werden.
Der Markierungs-Adreßlisten-Abschnitt 28 enthält eine Verknüpfungsschaltung, durch die angezeigt wird, daß ein Block von Wörtern in dem Cache-Speicher 10 vollständig ist und daß die Daten gültig sind. Die Verknüpfungsschaltung bildet ein dem jeweiligen Markierungswort zugehöriges bzw. mit diesem verbundenes Voll-Leer-Statusbitsignal. Der Cache-Speicher IC kann dadurch gelöscht werden, daß sämtliche Status-Bitsignale zurückgestellt werden. Der Cache-Speicher 10 wird vollständig gelöscht, wenn die Zentraleinheit auf eine externe Unterbrechung antwortet, welche signalisiert, daß ein neues Programm einzuleiten ist Der Cache-Speicher wird iedoch teilweise gelöscht, wenn die Seite der Dateninformation zu löschen ist. Bei der vorliegenden Ausführungsform besitzt eine Dateninformationsseite eine Größe von etwa 1 K, und der Cache-Speicher enthält 1 K Dateninformationswörter.
Jede der 128 Stufen der Markierungs-Adreßliste 28 weist eine Umlaufschaltung (RR 0) auf, die die Spalte oder Markierung bzw. Marke der adressierten Stufe angibt, welche als nächste zu laden ist Die Umlaufschaltung RRQ ist mit der Voll-Leer-Statusbitsignalspeicherung in der in Fig.6b dargestellten Steuerlogik versehen. Die Umlaufschaltung wird weitergerückt, wenn ein neuer Dateninformationsblock in dem Cache-Speicher 10 untergebracht wird. Die absoluten Adressenbits ALOO-08 werden in dem Markierungs-Adreßlistenspeicherplatz abgespeichert, zu dem ein Zugriff durch die effektiven Adressenbits ZC09—15 erfolgt. Die Umlaufschaltung besteht aus zwei Bitspeicherplätzen in jedem von einer Vielzahl von Sechs-Bit-Speicherchips, wie sie in Fig. 6b gezeigt sind, und zwar in Verbindung
■i mit einer Zählereinstell- oder Sprungzählerschaltung, einem Binärzähler und einer 2-zu-4-Decoderform der Umlaufschaltung.
Die Umlaufschaltung und der Voll-Leer-Mechanismus enthalten, wie in Fig. 6b gezeigt, einen Teil der Steuerlogik 31, die in Fig. 2 dargestellt ist; die betreffenden Anordnungen steuern die Unterbringung und Festlegung der Dateninformation in den Spalten der Markierungs-Adreßliste und damit in einem bestimmten Speicherplatz des Cache-Speichers. Zwei 6-Bit-Speichereinheiten 43a und 436, die in Fig. 6b gezeigt sind, enthalten einen Teil der acht Einheiten, die in der vorliegenden Ausführungsform vorgesehen sind. Jedes Speicherchip 43 ist als sechs Speicherpositionen RR 1, RR 2 und L 1 — L 4 ist enthaltend dargestellt. Jede dieser Speicherpositionen enthält sechzehn Unterpositionen, so daß insgesamt 96 Informationsbits in jedem der Speicherchips 43 gespeichert werden können. Die 6-Bit-Speicherchips 43a und 43£> enthalten einen Adressenteil 44a und 446, der durch eine Gruppe von vier Adressenauswahl-ODER-Gliedern 45 bis 48 gesteuert wird. Ein Teil der effektiven Adressensignale ZC12—15 wird einem Eingang jedes der vier ODER-Glieder 45 bis 48 zugeführt, während der andere Eingang des jeweiligen ODER-Gliedes 45—48 durch Löschadressensignale KNTO—4 gesteuert wird. Die Löschadressensignale werden durch die in Fig.7 dargestellte Lösch-Schaltung erzeugt. Die Arbeitsweise der Lösch-Schaltung wird weiter unten noch erläutert werden.
Im folgenden sei die Beschreibung der Steuerlogikschaltung 31 gemäß F i g. 6 weitergeführt. Die Adressenauswahl-ODER-Glieder 45 bis 48 liefern sechzehn mögliche Adressensignale. Die übrigen drei Bits der effektiven Adressensignale, das sind die Bits ZC9—11, werden einem 3-zu-8-Decoder 50 zugeführt, um die Chip-Auswahlsignale CHSELi-S bereitzustellen. Jedes Chip-Auswahlsignal wird einem der 6-Bit-Speicher-Chips 43 zugeleitet Demgemäß adressieren die Chip-Auswahlsignale in Verknüpfung mit den effektiven Adressensignalen ZC12—15 individuell sämtliche acht 6-Bit-Speicherchips.
Die in sämtlichen Speicherchips gespeicherten Informationsbits werden von dem modifizierten Inkrementzähler 55 erhalten, der sukzessive die gespeicherten Umlaufsignale A, B. C und die Signale Li —L 4 freigibt Jedesmal, wenn eine Dateninformation in den Cache-Speicher 10 eingeschrieben wird, wird die 6-Bit-Speicherzelle, die dieselbe effektive Adresse besitzt inkrementiert Während der Cache-Speicher-Schreiboperation wird das Löschsignal gesperrt, während das invertierte Löschsignale mit hohem Pegel auftritt oder freigegeben ist Eine Cache-Speicher-Löschoperation führt dazu, daß sämtliche Signale RR1, RR 2, L i bis L 4 sowie A, B C und D auf Null zurückgesetzt werden. Auf die erste Adressierung eines bestimmten 6-Bit-Speicherchips hin, wie zum Beispiel des Speicherchips 43a, werden die Signale ZC9—15 dem Speicherchip 43a und dem Adressenauswahlteil 44a zugeführt. Diese Signale werden ferner über das Speicherchip 43a übertragen. Sie bewirken, daß der Binärzähler 94 in seiner Zählerstellung um 1 erhöht wird. Wenn die Zählerstellung des Zählers 94 um 1 erhöht worden ist, bewirkt dies, daß der 2-zu-4-Decoder 93 ein Signal hohen Pegels auf der A-Leitung abgibt Das auf der /4-Leitung mit hohem Pegel
auftretende Signal wird dem unteren Eingang des ODER-Gliedes 57 in dem Inkrement-Zähler 55 zugeführt. Dies hat zur Folge, daß auf der oberen Leitung des UND-Gliedes 78 eine positive Spannung auftritt. Gleichzeitig treten das CAMP-Signal und das Löschsignal mit niedrigem Pegel auf. während das CAMP'-Signal und das invertierte Löschsignal mit hohem Pegel auftreten, so daß das UND-Glied 77 übertragungsfähig ist. Dadurch wird ein Signal mit hohem Pegel an den unteren Eingang des UND-Gliedes 78 abgegeben. Das UND-Glied 78 wird übertragungsfähig und gibt ein Signal A mit hohem Pegel über das ODER-Glied 88 an den Setzeingang 1 des 6-Bit-Speicherchips 43a ab. Dadurch wird ein L 1-Signal am Ausgang des Chips 43a abgegeben. Auf eine nachfolgende Adressierung des Speicherchips 43a gibt der Binärzähler ein Signal an den Decoder 93 ab, der ein Signal B mit hohem Pegel erzeugt. Dieses Signal B wird über das ODER-Glied 58, das UND-Glied 79 und das ODER-Glied 89 dem Setzeingang 2 des 6-Bit-Speicherchips 43 zugeführt. Auf diese Weise wird von dem Chip 43a ein L 2-Ausgangssignal abgegeben.
Auf die anschließende Adressierung des Speicherchips 43a werden die Speicherplätze L 3 und L 4 adressiert, so daß ein Ausgangssignal auf den in gleicher Weise bezeichneten Ausgangsleitungen L 3 bzw. L 4 des Chips 43a erhalten wird. Die vier Bits L 1 bis L 4 in dem Chip 43a zeigen an, daß sämtliche vier Stufen der Adressenspalte voll sind und daß die zugehörige Cache-Speicherplätze gültige Daten enthalten. Durch anschließende Schreiboperationen bezüglich derselben Adressen in dem Chip 43a wird der Cache-Speicher aktualisiert.
Die Status-Signale RR i und RR 2 sind die Zeigersignale, die den Stufenabschnitt der Markierungs-Adreßliste einstellen; die UND-Glieder 71 und 72 und die ODER-Glieder 37 und 38 (siehe F i g. 5) liefern die beiden Adressensignale CA und CB für den Cache-Speicher 10. Die Signale RR 1 und RR 2 werden durch eine Gruppe von Verknüpfungsgliedern 110 bis 118 gemäß F i g. 8 codiert, um die Spaltenplätze A bis Danzugeben, die in Verbindung mit den effektiven Adressensignalen ZC10—15 die bestimmten Stufen- und Spaltenplätze in der Markierungs-Adreßliste 28 liefern. Die Spaltenplatzsignale A bis D werden dem Stufen- bzw. Ebenen-Wähler 25 zugeführt (siehe F '·■ g. 4), der den Eintrag der gespeicherten Adressensignale ALO-8 in die Markierungs-Adreßliste 28 steuert. Die Spaltenplatzsignale zeigen zu der Spalte der Markierungsadreßliste hin, die die nächste Adresse der in dem Cache-Speicher abzuspeichernden Dateinormation aufzunehmen hat. Auf eine Löschoperation oder Einleitungsoperation hin werden die Signale RR I und RR 2 aus sämtlichen Bitspeicher-Chips zu Null gemacht bzw. gelöscht. Wenn eine Dateninformation in dem Cache-Speicher untergebracht wird und wenn die Adresse der Dateninformation in der Markierungs-Adreßliste untergebracht wird, wird der Umlaufzähler inkrementiert bzw. in seiner Zählerstellung erhöht Ein ,4-Ausgangssignal mit hohem Pegel bewirkt, daß die gespeicherten Adressensignale AL 00—08 in der Λ-Stufe bzw. Α-Ebene der Spalte untergebracht werden, die durch die effektiven Adressensignale ZC10—15 aufgerufen ist (siehe F i g. 4). Gleichzeitig wird (hierzu sei auf Fig.6 Bezug genommen) durch die effektiven Adressensignale ZC9—15 das zugehörige bzw. assoziierte 6-Bit-Speicherchip aktiviert, um das erste Bit zu setzen. Bei der nächsten Cache-Speicher-Schreiboperation, die dieselbe Spalte in der Markierungs-Adreßliste adressiert, werden die gespeicherten Adressensignale in der B-Stufe der Adressenspalte untergebracht.
Die Anzeige bezüglich des Vorliegens von gültigen Daten in dem Cache-Speicher wird dadurch erreicht, daß die Erzeugung des Übereinstimmungssignals MATCH von dem Vergleicher 29 bewirkt wird (siehe F i g. 4). Das CCl-Signal von dem Vergleicher Nummer 1 wird lediglich dann freigegeben, wenn das L !-Signal freigeben ist. Dies zeigt an, daß gültige Adressendaten in der /4-Stufe existieren und daß die dem Vergleicher zugeführten Signale übereinstimmen. Das CC2-Signal von dem Vergleicher Nummer 2 her wird lediglich dann freigegeben, wenn das L 2-Signai freigegeben ist. Dies zeigt an, daß gültige Adressendaten in der ß-Stufe gespeichert sind und daß die Signale für den Vergleicher übereinstimmen. Das CC 3-Signal von dem Vergleicher Nr. 3 her ist lediglich dann freigegeben, wenn das L 3-Signal freigegeben ist. Dies zeigt an, daß gültige Adressendaten in der C-Stufe gespeichert sind. Das CC4-Signal von dem Vergleicher Nummer4 her ist lediglich dann freigegeben, wenn das L 4-Signal freigegeben ist. Dies zeigt an, daß gültige Adressendaten in der D-Stufe gespeichert sind. Die eigentliche Ausführung der Logik hinsichtlich der Steuerung des Vergleichers 29 durch die Signale L\ bis L 4 dürfte als naheliegend anzusehen sein und ist deshalb hier nicht näher gezeigt. Die mit der Markierungs-Adreßlistenspalte verbundene bzw. dieser assoziierte Binärspeichereinheit wird durch dieselben Adressensignale adressiert, wie die Spalten; deshalb sind die Ausgangssignale von beiden Anordnungen gleichzeitig verfügbar.
Um den gesamten Cache-Speicher 10 zu Löschen, ist es lediglich erforderlich, sämtliche Speicherplätze L 1, L2, L3 und L4 in den 6-Bit-Speicherchips zurückzustellen,das heißt, sämtliche Voll-Leer-Signale L 1 bis L 4 auf einen niedrigen Pegel zu bringen oder unwirksam zu machen. Sämtliche vier Voll-Leer-Signale geben, wenn sie im Zustand niedrigen Pegels auftreten, an, daß keine gültigen Daten in einer bestimmten Spalte enthalten sind. Auf diese Weise wird nämlich die Abgabe eines Ausgangssignais von dem Vergleicher 29 verhindert. Sämtliche sechs Bits in der Speichereinheit 43a und 436 werden auf Null gebracht bzw. gelöscht, und zwar durch ein Auslösesignal nach einer Einschaltoperation oder nach einer Löschoperation, so daß sämtliche Daten in dem Cache-Speicher effektiv zu einer ungültigen Dateninformation werden.
Im folgenden sei auf Fig. 7 im Hinblick auf das Löschen der Anordnung auf ein Einleitungs-Löschsignal INIT-CLEAR hin eingegangen. Ein Flipflop 64 wird dabei gesetzt, um das Löschsignal CLEAR freizugeben. Das betreffende Löschsignal wird einem Impulsgenerator 65 sowie dem 3-zu-8-Decoder 50 gemäß F i g. 6 zugeführt. Das Ausgangssignal des Impulsgenerators 65 wird dem Additionseingang + 1 der Zählerschaltung 66 zugeführt Am Ausgang der Zählerschaltung 66 treten die Lösch-Adressensignale KNTO—32 auf, die den vier Adressen-ODER-Gliedern 45 bis 48 und den ODER-Gliedern 52 bis 54 gemäß F i g. 6 zugeführt werden. Der Zähler 66 nimmt eine Adressenzählersteilung von 0 bis 16 ein, um die Bitpositionen der Speicherzellen 43 gemäß F i g. 6 jeweils dann zu adressieren, wenn der Impulsgenerator 65 ein Freigabesignal abgibt Der Impulsgenerator 65 gibt, wenn er freigegeben ist, einen kontinuierlichen Impulsstrom ab, dessen Impulse durch diejenige Zeitspanne voneinander getrennt sind, die erforderlich ist, um eine Speicherheinheit zurückzustellen. Auf das Erreichen einer Zählerstellung: 16 hin wird ein
Übertragsignal CARRY von der Zählerschaltung 66 freigegeben. Das betreffende Ob-irtragsignal wird dem Rückstelleingang K des Flipflop 64 zugeführt, um die Löschoperation zurückzustellen und das CLEAR'-Signa1 wieder freizugeben.
Das die Löschoperation aktivierende INIT-CLear-Signal wird aus den Signalen SAR und CAMS abgeleitet, die dem UND-Glied 74 zugeführt werden. Das SAR-Signal liefert die in Frage kommenden Zeitsteuersignale bzw. Taktsignale für die Löschoperation.
Zurückkommend auf Fig.6 sei bemerkt, daß das Löschsignal CLEAR, welches dem 3-zu-8-Decoder 50 zugeführt wird, sämtliche Chip-Auswahlsignale CHSEL 1-8 freigibt Wenn eine Zählerstellung von Null bis 16 durch die Zählerschaltung 66 durchlaufen wird, um die Signale KNTO—4 freizugeben, werden daher sämtliche acht 6-Bit-Speicher-Chips zu einem Zeitpunkt gelöscht. Die Signale SETI — 4 werden sämtlich unwirksam gemacht, und zwar dadurch, daß das Signal CLEAR'unwirksam gemacht wird, welches dem UND-Glied 77 des modifzierten Inkrementzählers 55 zugeführt wird. Nachdem die Zählerschaltung 66 die Zählerstellung 16 zählt, ist daher der gesamte Cache-Speicher 10 wirksam gelöscht, in dem der Umlauf- und Voll-Leer-Mechanismus gelöscht ist. Dadurch wird die gesamte Dateninformation in dem Cache-Speicher zu einer ungültigen Information.
Die vollständige Löschung der Markierungs-Adreßliste in dem Cache-Speicher wird dadurch ausgeführt, daß lediglich die Voll-Leer-Markcn zurückgesetzt werden. Das Umlauf-Zeigersignal wird zurückgesetzt, um auf die /4-Stufe der Markierungs-Adreßliste zu zeigen.
Zur Ausführung des Cache-Speichers 10 sowie der anderen Speichereinheiten, wie der Markierungs-Adreßliste 28, werden mit sehr hoher Geschwindigkeit arbeitende integrierte Schaltungspackungen verwendet. Die Cache-Speicher-Adresse (siehe F i g. 3) leitet die Adressierung der bestimmten Schaltungspackung zusammen mit einem bestimmten Wort oder einem Teil eines Wortes aus jeder Packung.
Die bestimmte Adressierung der integrierten Schaltungspackungen ist auf dem vorliegenden Gebiet für sich bekannt und wird daher hier nicht weiter erläutert.
Wenn es erwünscht ist, daß lediglich ein Teil des Cache-Speichers gelöscht wird, gibt die Verarbeitungseinheit 7 gemäß Fig. 1 einen CAMPOP-CoAt oder ein Signal »OPCODE= CAMP« und die Adresse des in dem Cache-Bereich 11 gemäß Fi g. 1 und 2 zu löschenden Teiles ab. Das Signal »OPCODE = CAMP« wird der in Fig. 7 näher dargestellten Inkrementierungsschaltung 24 zugeführt. Die Adresse des zu löschenden Cache-Speicherabschnitts ist in dem Signal AL 00—08 enthalten, das dem Eingang des Vergleichers 29 gemäß F i g. 2 und 4 zugeführt wird. Gleichzeitig veranlassen die Signale KNTO-3, daß die Inhalte der Register 28 der Markierungs-Adreßliste sequentiell den Verglcicherschaltungen Nummer 1 bis Nummer 4 des Vergleichers 29 zugeführt werden, wie er in Fi g. 4 dargestellt ist. Bei der ersten Zählerstellung beispielsweise, zu der KNTO—32 = Null ist, wird die Abgabe der Daten von dem Block AO, BQ, CO und DO an eine entsprechende Vergleicherschaltung der Vergleicherschaltungen 1 bis 4 bewirkt. Diese den Vergleicherschaltungen 1 bis 4 zugeführten Signale werden mit den Signalen ,4LOO-08 verglichen. Wenn dabei eine Übereinstimmung auftritt, werden die Signale CCl bis CC4 am Ausgang irgendeiner dieser Schaltungen abgegeben, die eine Übereinstimmung ermittelt. Diese Signale CC 1 bis CC4 werden der selektiven Löschschaltung 55 zugeführt, die in F i g. 6 gezeigt ist Wenn eine Übereinstimmung in der Vergleichsschaltung Nummer 1 gemäß F i g. 4 auftritt, gibt die Vergleicherschaltung Nummer 1 das Signal CCl ab, das invertiert und dem Verknüpfungsglied 83 der selektiven Löschschaltung 55 zugeführt wird. Das CC 1-Signal wird über die Verknüpfungsglieder 83 und 88 gleitet und bewirkt, daß das L 1-Bit in dem 6-Bit-Speicher-Chip 43a zurückgesetzt wird. Wenn das L 1-Bit in dem Chip 43a zurückgesetzt ist, zeigt dies an, daß der entsprechende Block in dem Cache-Speicher 10 gemäß Fig.4 ungültige Daten enthält; dieser Block ist für die Speicherung eines neuen Datenbits von dem Hilfsspeicher 4 gemäß F i g. 1 her verfügbar. Wenn die Vergleicherschaltung Nummer 2 gemäß Fig.4 ein Signal CC2 an die selektive Löschschaltung 55 gemäß Fig.6 abgibt, wird in ähnlicher Weise das Signal über die Verknüpfungsglieder 84 und 89 geleitet und bewirkt, daß das L 2-Bit des Speicherchips 43a zurückgesetzt wird.
Abschließend sei bemerkt, daß durch die Erfindung erreicht worden ist, daß in einem Datenverarbeitungssystem, in welchem eine Programmunterteilung und Seitenbildung ber utzt wird, um einen Zugriff zu einer Dateninformation zu erhalten, wie in einer virtuellen Speichermaschine, der vorgesehene Cache-Speicher nicht vollständig gelöscht werden muß, wenn jeweils eine Eingabe/Ausgabe-Operation ausgeführt wird, oder wenn zum jeweiligen Zeitpunkt die in dem Cache-Speieher enthaltenen Daten möglicherweise nicht richtig sind. Mit der Programmunterteilung und Seitenbildung braucht lediglich ein Teil des Cache-Speichers gelöscht zu werden, wenn eine neue Seite von dem virtuellen Speicher erhalten wird. Der gesamte Cache-Speicher wird lediglich dann gelöscht, wenn ein neues Segment durch den Befehl angezeigt wird. Der Cache-Speicher wird selektiv bezüglich der Information von der Seite gelöscht, deren Dateninformation nicht länger benötigt wird, indem die jeweilige Stufe einer Assoziativ-Markierungsadreßliste für den Cache-Speicher adressiert wird. Die Spalten der jeweiligen Stufe werden mit der Seiten-Adresse verglichen, und wenn eine Übereinstimmung bzw. ein Vergleich signalisiert wird, wird die betreffende Spalte der adressierten Stufe gelöscht, indem die Marke bzw. das Kennzeichen gelöscht wird, das den Voli-Status der Spalte in der adressierten Stufe bzw. Ebene anzeigt. Jede Ebene bzw. Stufe der Markierungsadreßliste wird adressiert.
Hierzu 7 Blatt Zeichnungen

Claims (3)

Patentansprüche:
1. Datenverarbeitungssystem mit einem Prozessor, mit einem Hauptspeicher, mit einem Cache-Speicher und mit einem Eingabe/Ausgabe-Prozessor, wobei mit einem virtuellen Speicher gearbeitet wird, in welchem Programme in Segmenten organisiert sind, die jeweils aus mehreren Seiten bestehen, deren jede eine Vielzahl von Datenwörtern enthält, welche auf das Auftreten von Lesebefehlen hin aus dem Hauptspeicher in den Cache-Speicher einschreibbar sind, dadurch gekennzeichnet, daß auf das Auftreten eines die Entfernung eines Segmentes aus dem Hauptspeicher (4) bewirkenden Steuerprogrammbefehls hin der gesamte Inhalt des Cache-Speichers (11) in dem Fall löschbar ist, daß Datenwörter des betreffenden Segments in dem Cache Speicher (1 1) gespeichert sind,
daß auf das Auftreten eines die Entfernung einer Seite aus dem Hauptspeicher (4) bewirkenden Steuerprogrammbefehls in sämtliche Datenwörter der betreffenden Seite eines in dem Cache-Speicher (11) gespeicherten Segmentes in dem Cache-Speicher (11) löschbar sind,
und daß auf das Einschreiben gesonderter Datenwörter in eine Seite des Hauptspeichers (4) hin sämtliche Datenwörter der betreffenden Seite eines in dem Cache-Speicher (11) gespeicherten Segmentes in dem Cache-Speicher (11) löschbar sind.
2. Datenverarbeitungssystem nach Anspruch 1, gekennzeichnet durch eine selektive Löscheinrichtung für den Cache-Speicher (11), die dann aktiviert wird, wenn Speichereinheiten ^iner Einstell-Markierungsadreßliste (28) für die Adressierung des Cache-Speichers aktiviert sind und von dem Prozessor ein selektives Löschsignal aufgenommen wird, daß zu den eine Aktivierung bewirkenden Einrichtungen ein Impulsgenerator (65) gehört, der durch das selektive Löschsignal veranlaßt ist, eine Impulsgruppe zu erzeugen, daß ferner eine Zählschaltung vorgesehen ist, die die Impulsgruppe aufnimmt und Adressensignale erzeugt, welche die genannten Speichereinheiten nacheinander in Übereinstimmung mit der Zählschaltung (66) betätigen, und daß Vergleichereinrichtungen (29) vorgesehen sind, die die Adresse jeder der Speichereinheiten mit den zu löschenden Adressen vergleichen.
3. Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Einstellmarkierungs-Adreßliste (28) mehrere Spalten aufweist und jede Spalte mehrere Stufen enthält, und daß jede Speichereinheit eine Anzahl von Informationsbits speichert, wobei ein kleinerer Teil der Informationsbits für die Stufenzählung und ein größerer Teil der Informationsbits als Voll-Status-Signale dient.
DE2515696A 1974-04-10 1975-04-10 Datenverarbeitungssystem Expired DE2515696C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/459,504 US3979726A (en) 1974-04-10 1974-04-10 Apparatus for selectively clearing a cache store in a processor having segmentation and paging

Publications (2)

Publication Number Publication Date
DE2515696A1 DE2515696A1 (de) 1975-10-23
DE2515696C2 true DE2515696C2 (de) 1984-09-06

Family

ID=23825057

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2515696A Expired DE2515696C2 (de) 1974-04-10 1975-04-10 Datenverarbeitungssystem

Country Status (6)

Country Link
US (1) US3979726A (de)
JP (1) JPS50138738A (de)
CA (1) CA1033464A (de)
DE (1) DE2515696C2 (de)
FR (1) FR2267588B1 (de)
GB (1) GB1494365A (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5226124A (en) * 1975-08-22 1977-02-26 Fujitsu Ltd Buffer memory control unit
FR2348544A1 (fr) * 1976-04-15 1977-11-10 Honeywell Bull Soc Ind Ensemble double de memoire associative
US4096568A (en) * 1976-09-24 1978-06-20 Sperry Rand Corporation Virtual address translator
US4197580A (en) * 1978-06-08 1980-04-08 Bell Telephone Laboratories, Incorporated Data processing system including a cache memory
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
DE2947115A1 (de) * 1978-12-11 1980-06-26 Honeywell Inf Systems Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem
US4282572A (en) * 1979-01-15 1981-08-04 Ncr Corporation Multiprocessor memory access system
US4298929A (en) * 1979-01-26 1981-11-03 International Business Machines Corporation Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
US4264953A (en) * 1979-03-30 1981-04-28 Honeywell Inc. Virtual cache
DE3046912C2 (de) * 1979-12-14 1994-05-11 Bull Hn Information Syst Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
US4386402A (en) * 1980-09-25 1983-05-31 Bell Telephone Laboratories, Incorporated Computer with dual vat buffers for accessing a common memory shared by a cache and a processor interrupt stack
US4400774A (en) * 1981-02-02 1983-08-23 Bell Telephone Laboratories, Incorporated Cache addressing arrangement in a computer system
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb
JPS58147879A (ja) * 1982-02-26 1983-09-02 Toshiba Corp キヤツシユメモリ制御方式
US4567578A (en) * 1982-09-08 1986-01-28 Harris Corporation Cache memory flush scheme
US4714990A (en) * 1982-09-18 1987-12-22 International Computers Limited Data storage apparatus
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
CA1210157A (en) * 1982-12-09 1986-08-19 Jack J. Stiffler Memory backup system
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
FR2571163B1 (fr) * 1984-09-28 1989-02-10 Nec Corp Systeme de traitement de donnees pour traitement de vecteurs ayant un ensemble de commande d'invalidation d'antememoire.
JP2539357B2 (ja) * 1985-03-15 1996-10-02 株式会社日立製作所 デ−タ処理装置
US5241638A (en) * 1985-08-12 1993-08-31 Ceridian Corporation Dual cache memory
US4755936A (en) * 1986-01-29 1988-07-05 Digital Equipment Corporation Apparatus and method for providing a cache memory unit with a write operation utilizing two system clock cycles
US5349672A (en) * 1986-03-17 1994-09-20 Hitachi, Ltd. Data processor having logical address memories and purge capabilities
US5237671A (en) * 1986-05-02 1993-08-17 Silicon Graphics, Inc. Translation lookaside buffer shutdown scheme
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US4833601A (en) * 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
JP2700147B2 (ja) * 1988-04-01 1998-01-19 ディジタル イクイプメント コーポレーション 命令キャッシュ・フラッシュ・オン・rei制御
US5214770A (en) * 1988-04-01 1993-05-25 Digital Equipment Corporation System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5041962A (en) * 1989-04-14 1991-08-20 Dell Usa Corporation Computer system with means for regulating effective processing rates
JPH0748190B2 (ja) * 1990-01-22 1995-05-24 株式会社東芝 キャッシュメモリ内蔵マイクロプロセッサ
AU8870291A (en) * 1990-10-12 1992-05-20 Intel Corporation Cache controller and associated method for remapping cache address bits
GB9118312D0 (en) * 1991-08-24 1991-10-09 Motorola Inc Real time cache implemented by dual purpose on-chip memory
JP3242161B2 (ja) * 1992-09-11 2001-12-25 株式会社日立製作所 データプロセッサ
USRE38651E1 (en) * 1994-05-18 2004-11-09 Altera Corporation Variable depth and width memory device
WO1995034860A1 (en) * 1994-06-10 1995-12-21 Sequoia Systems, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US6256694B1 (en) * 1994-06-30 2001-07-03 Compaq Computer Corporation Distributed early arbitration
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5745672A (en) * 1995-11-29 1998-04-28 Texas Micro, Inc. Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer
US5751939A (en) * 1995-11-29 1998-05-12 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
JP2656765B2 (ja) * 1996-01-16 1997-09-24 株式会社日立製作所 データ処理装置
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
JP3620181B2 (ja) * 1996-12-05 2005-02-16 富士通株式会社 半導体装置及びリードアクセス方法
US6157981A (en) * 1998-05-27 2000-12-05 International Business Machines Corporation Real time invariant behavior cache
US6886063B1 (en) * 1999-11-10 2005-04-26 Digi International, Inc. Systems, devices, structures, and methods to share resources among entities
US6581142B1 (en) * 2000-09-01 2003-06-17 International Business Machines Corporation Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer
JP2018013951A (ja) * 2016-07-21 2018-01-25 京セラドキュメントソリューションズ株式会社 電子機器及び情報更新プログラム
US12111768B2 (en) * 2019-02-14 2024-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for controlling memory handling
US11074194B2 (en) * 2019-02-21 2021-07-27 International Business Machines Corporation Managing direct memory access
CN112328587A (zh) * 2020-11-18 2021-02-05 山东健康医疗大数据有限公司 ElasticSearch的数据处理方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3588829A (en) * 1968-11-14 1971-06-28 Ibm Integrated memory system with block transfer to a buffer store
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3800286A (en) * 1972-08-24 1974-03-26 Honeywell Inf Systems Address development technique utilizing a content addressable memory
US3800291A (en) * 1972-09-21 1974-03-26 Ibm Data processing system memory relocation apparatus and method
US3800292A (en) * 1972-10-05 1974-03-26 Honeywell Inf Systems Variable masking for segmented memory
US3848234A (en) * 1973-04-04 1974-11-12 Sperry Rand Corp Multi-processor system with multiple cache memories
US3840862A (en) * 1973-09-27 1974-10-08 Honeywell Inf Systems Status indicator apparatus for tag directory in associative stores
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US3896419A (en) * 1974-01-17 1975-07-22 Honeywell Inf Systems Cache memory store in a processor of a data processing system

Also Published As

Publication number Publication date
FR2267588B1 (de) 1978-09-01
CA1033464A (en) 1978-06-20
FR2267588A1 (de) 1975-11-07
US3979726A (en) 1976-09-07
JPS50138738A (de) 1975-11-05
DE2515696A1 (de) 1975-10-23
GB1494365A (en) 1977-12-07

Similar Documents

Publication Publication Date Title
DE2515696C2 (de) Datenverarbeitungssystem
DE2154106A1 (de) Arbeitsspeicherwerk
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE3151745C2 (de)
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE2163342C3 (de) Hierarchische binäre Speichervorrichtung
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2501853A1 (de) Prozessor fuer ein datenverarbeitungssystem
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2523414B2 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
DE2331589A1 (de) Datenverarbeitungsanordnung
DE2360303C2 (de) Datenverarbeitungsanlage mit Adreßübersetzung für Ein-/Ausgabekanäle
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE1935944C3 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage
DE2640357A1 (de) Wortgruppenprioritaetsanordnung
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2458525B2 (de) Speicheranordnung mit Haupt- und Pufferspeicher
DE4302754C1 (de) Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb
DE3000012A1 (de) Schaltungsanordnung zur ausfuehrung eines uebertragungsbefehls in einer datenverarbeitungsanlage
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
CH495584A (de) Datenverarbeitungsanlage
DE2000608C3 (de) Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage
DE1296429B (de) Datenbearbeitungsanlage
DE2502920A1 (de) Steueranordnung fuer den betrieb eines datenendgeraetes

Legal Events

Date Code Title Description
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee