DE2515696C2 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing 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. 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.
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
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)
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.
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)
| 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)
| 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 |
-
1974
- 1974-04-10 US US05/459,504 patent/US3979726A/en not_active Expired - Lifetime
-
1975
- 1975-03-06 GB GB9417/75A patent/GB1494365A/en not_active Expired
- 1975-04-09 FR FR7511095A patent/FR2267588B1/fr not_active Expired
- 1975-04-09 CA CA224,259A patent/CA1033464A/en not_active Expired
- 1975-04-10 DE DE2515696A patent/DE2515696C2/de not_active Expired
- 1975-04-10 JP JP50043883A patent/JPS50138738A/ja active Pending
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 |