DE2515696A1 - Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher - Google Patents

Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher

Info

Publication number
DE2515696A1
DE2515696A1 DE19752515696 DE2515696A DE2515696A1 DE 2515696 A1 DE2515696 A1 DE 2515696A1 DE 19752515696 DE19752515696 DE 19752515696 DE 2515696 A DE2515696 A DE 2515696A DE 2515696 A1 DE2515696 A1 DE 2515696A1
Authority
DE
Germany
Prior art keywords
memory
signals
address
counter
cache memory
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.)
Granted
Application number
DE19752515696
Other languages
English (en)
Other versions
DE2515696C2 (de
Inventor
Riley H Dobberstein
Ronald Edwin Lange
Steven Hugh 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 Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
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 Italia SpA filed Critical Honeywell Information Systems Italia SpA
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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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

Description

DIpK-lng. Heinz Bardehle 2513638 Patentanwalt
S München 22. Hcrrnstr. 15, Tel. 292553 Postanschritt München 26, Postfach 4
München, den 10. April 1975
Mein Zeichen: P 2139
Anmelder: Honeywell Information Systems Inc. 200 Smith Street
Waltham, Mass.02154
USA
Anordnung zum selektiven Löschen von Teilen beziehungsweise zum Ersatz von Daten in einem Cache-Speicher
Die Erfindung bezieht sich auf elektronische digitale Datenverarbeitungssysteme und insbesondere auf Prozessoren, die einen Cache-Speicher enthalten, wobei eine selektive Löschoperation in Verbindung mit einem Datenprozessor einen Zugriff zu einem virtuellen Speicher liefert, und zwar durch .Ausnutzung von Programmunterteilungs- und Seitenbildungsoperationen.
509843/0832
2515695
Ein Cache-Speicher ist ein kleiner, leicht zugänglicher Speicher, der in dem Prozessor bzw. der Zentraleinheit eines Datenverarbeitungssystems untergebracht ist, wobei der Cache-Speicher einen Teil der Grosse des Hauptspeichers ausmacht, jedoch einen schnelleren Zugriff zu gespeicherter 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 zu dem Cache-Speicher erst für die benötigten Daten vor. Die in dem Cache-Speicher gespeicherten Daten werden durch einen ersten Zugriff der Zentraleinheit zu dem Hauptspeicher hin erhalten. Die abgeführten Daten werden von der Zentraleinheit ausgenutzt und gleichzeitig in dem Cache-Speicher gespeichert.
Die Cache-Speicher-Wirksamkeit hängt davon ab, dass die Zentraleinheit dieselben Daten ein zweitesmal und möglicherweise in einer Häufigkeit 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 Ausnutzung von Daten von dem nächsten Programm her. Dies ist wahrscheinlich das effektivste Löschen des Cache-Speichers, wobei die einzige bekannte Grosse das Programm ist, das verarbeitet wird. Im Falle der Anwendung eines Datenverarbeitungssystems, welches eine Programmunterteilung und Seitenbildung für den Zugriff zu dem Hauptspeidaer enthält, wird jedoch eine weitere bekannte Grosse in das Programm eingeführt; gemäss dieser Grosse kann in dem Fall, dass ein Segment nicht mehr von Nutzen ist, der gesamte Cache-Speicher gelöscht werden, da ein Segment im allgemeinen viel grosser ist als der Cache-Speicher. Das Segment in der Programmunterteilungs-Wiederauffindung eines Speichers ist in kleinere Bereiche unterteilt, die im allgemeinen als Seiten bezeichnet werden und die üblicherweise 1000 Wörter umfassen. Diese Grosse ist
509843/0832
jedoch kleiner als die Grosse des Cache-Speichers. Deshalb wäre ein selektives Löschen in dem Fall von Vorteil, dass durch den verarbeiteten Befehl festgelegt ist, dass eine Dateninformations-Seite nicht mehr benötigt wird und dass 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, dass gegebenenfalls
die in dem Hauptspeicher enthaltenen Daten durch die Opera-Ausgabe
tionen der Eingabe/f-Steuereinrichtung geändert worden sind und dass 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 5096 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 muss.
Die Anwendung eines Cache-Speichers in einem Mehrprozessor-Betrieb bringt zusätzliche Probleme mit sich. Dabei antwortet lediglich ein Prozessor bzw. eine Zentraleinheit auf externe Unterbrechungssignale. 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, dass
509843/0832
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 jede.n Prozessor ausgeführt werden. Diese Verbesserung der Löschoperation bezüglich des Cache-Speichers ist an anderer Stelle näher beschrieben (siehe US-Patentanmeldung, Ser.No. 413089 v. 5.11.73.)
Die oben erwähnten bekannten Verfahren führen einen effektiven Ablauf des Löschens des Cache-Speichers auf Operationen hin aus, in denen ein Löschen des Cache-Speichers möglicherweise gefordert ist. Die betreffenden oben erwähnten Verfahren löschen den Cache-Speicher jedoch in einer übermässigen Häufigkeit.
Der Erfindung liegt demgemäss die Aufgabe zu Grunde, für einen Cache-Speicher eine wirtschaftliche Löschanordnung zu schaffen, die selektiv Bereiche des Cache-Speichers zu löschen gestattet. Ferner soll eine verbesserte Löschoperation für ein selektives Löschen einer gültigen Dateninformation aus einem Cache-Speicher angegeben werden. Ausserdem soll die neu zu schaffende Löschanordnung den Cache-Speicher dadurch zu löschen gestatten, dass ausgewählte zu löschende Adressen mit Markierungs-Adressen verglichen werden, die in einer für einen Cache-Speicher vorgesehenen Markierungs-Adressliste gespeichert sind. Überdies soll eine Cache-Speicherfähigkeit in einem Datenverarbeitungssystem geschaffen werden, wobei diese Fähigkeit die Programmunterteilungs- und Seitenbildungspläne für die Wiederauffindung einer Dateninformation zu unterstützen hat.
Gelöst wird die vorstehend aufgezeigte Aufgabe dadurch, dass ein Datenverarbeitungssystem vorgesehen ist, in welchem die Bildung einer absoluten Adresse mit dem hohe Wertigkeit besitzenden Teil einer effektiven Datenadresse und einem Basisregister in der üblichen Weise durchgeführt wird.
509843/0832
Eine Seitenadresse der Programmunterteilungs- und Seitenbildungsdaten- Wiederbereit Stellungsanordnung wird ebenfalls in dem Datenverarbeitungssystem selektiv eingeschaltet. Ferner wird eine Reihe von Adressmarken aus einer Cache-Markenadressliste parallel ausgelesen, die durch den niedrige Wertigkeit besitzenden Adressteil adressiert ist, der ferner eine entsprechende Reihe von Datenwörtern in dem Cache-Speicher identifiziert. Die Cache-Markenadressliste, der Cache-Speicher und die Steuerlogik bilden einen Teil der Zentraleinheit.
Der Maiienadressliste ist eine Statusanzeigeanordnung zugehörig, die eine Voll-Leer-StatB-Anzeige für die jeweilige Adressenstelle liefert, das heisst für jede Spalte jeder Ebene der Markenadressliste. Die Statusanzeigeanordnung zeigt den Eintrag von gültigen Daten in die Cache-Speichereinheit an, und zwar durch Decodierung der den Anzeigestatus speichernden Speichereinheit.
In einem mit Programmunterteilung und Seitenbildungsverfahren bei der Datenwiederbereitstellung arbeitenden Datenverarbeitungssystem werden zwei Verfahren zum Löschen des Cache-Speichers angewandt. Wenn ein Befehl zum Löschen des Programmunterteilungs-Assoziativspeichers auftritt, der die Adressen der Segmente in dem Hauptspeicher speichert, wird der gesamte Cache-Speicher gelöscht, und zwar durch Löschen der Voll-Leer-Speichereinheit, die auf die Marken-Adressliste in dem Cache-Speicher hinzeigt. 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 Seitenadresse Bezug genommen ist, gelöscht. Die Adressen für in dem Cache-Speicher untergebrachte Daten werden in einer Marken-
509843/0832
bzw. Markierungs-Adressliste gespeichert, die aus einer Vielzahl von Spalten und aus einer Vielzahl von Ebenen besteht. Die Cache-Adresse wird sequentiell in den Spalten der Markierungs-Adressliste untergebracht, und zwar in Übereinstimmung mit der Ebenen-Adresse der Markierungs-Adressliste. Um eine Dateninformation aus dem Cache-Speicher zu suchen, werden die Ebenen der Markierungs-Adressliste 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 wieder gefunden.
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 VoIl-Leer-Markierungsbit wird durch dieselben Ebene-Adressensignale adressiert, die an die Marken-Adressliste abgegeben worden sind. Das Löschen der Voll-Leer-Bits legt fest, dass die in dem Cache-Speicher verbleibenden Daten ungültig und daher zu ersetzen sind.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert.
Fig. 1 zeigt in einem Blockdiagramm ein Datenverarbeitungssystem mit einem Cache-Speicher in einer Zentraleinheit.
509843/0832
Fig. 2 zeigt in einem Blockdiagramm eine Nachrichtenverbindungs-Steueranordnung sowie einen Cache-Speicherbereich 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-Adressliste mit einem Vergleicher sowie die Abbildungs-Strategie zwischen dem in Fig. 2 dargestellten Cache-Speicher und dessen Marken-Adressliste.
Fig. 5 zeigt in einem Verknüpfungsdiagramm eine Anzeigeschal tungs-Steuerlogik für die in Fig. 2 dargestellte Marken-Adressliste.
Fig. 6 zeigt in einem Verknüpfungsdiagramm eine die Anzeigeschaltung gemäss Fig. 5 steuernde Cache-Speicher-LÖschschaltung.
Fig. 7 zeigt in einem Verknüpfungsdiagramm eine durch Prozessoroperationen gesteuerte Cache-Speicher-Löschschaltung, die die Anzeigeschaltung gemäss Fig. 6 steuert.
Fig. 8 zeigt ein Verknüpfungsdiagramm eines in der Schaltung nach Fig. 6 vorgesehenen Binärzählers.
Fig. 9 zeigt ein Verknüpfungsdiagramm einer in der Schaltung gemäss Fig. 6 vorgesehenen Zählereinstellschaltung.
509843/0832
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 Ergänzungs- bzw. Hilfs- bzw. Hintergrundspeicher 4. Die Verbindung mit einer Reihe von peripheren Geräten wird durch einen Block.B 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äss stehen die peripheren Geräte in Datenaustausch mit dem Hintergrundspeicher bzw. Hilfsspeicher 4 und der Zentraleinheit 2 über die EingabeZ-Ausgabe-Steuereinrichtung 5, während die Systemsteuereinheit 3 einen Zugriff zu dem Hilfsspeicher und der Zentraleinheit 2 steuert.
Die Zentraleinheit 2 enthält eine Operationseinheit 6, die Rechen- und Verknüpfungsoperationen auf Operanden hin ausführt, die aus einem Speicher gemäss Befehlen abgerufen werden, welche ebenfalls aus dem Speicher abgerufen worden sind. Eine Verarbeitungseinheit 7 ist kennzeichnend für die weiteren Verknüpfungssteuereinrichtungen und Operationen, die von der Zentraleinheit ausgeführt werden. Die Zentraleinheit 2 gemäss der vorliegenden Erfindung 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-Schalter 12, einen ZD-Schalter 13, einen ZA-Schalter 14a und einen ZB-Schalter I4b. Die Steuerung der Schnittstellenfunktionen der Zentraleinheit 2 - einschliesslich der Bildung der absoluten Adressen wird durch eine Datenübertragungssteuereinheit 15 ausgeführt. Ein Speicher-Operandenpuffer 9 stellt einen Zwischenregister-
509843/0832
— Q —
Speicher zwischen der Verarbeitungseinheit 7 und dem Cache-Bereich 11 dar.
Die in Fig. 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 14A in die Operationseinheit 6, durch Aktivieren des ZB-Schalters 14b in die Verarbeitungseinheit 7 oder durch Aktivieren des ZM-Schalters 12 in den Cache-Bereich 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 Worte* des Blockes in dem Cache-Bereich 11 aufzunehmen. Die Operationen- bzw. 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übertragungssteuer-
509843/0832
2513696
einheit 15 gespeichert ist. Das selektive Löschen gemäss der Erfindung ist bei der vorliegenden Ausführungsifcrm 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-Assoziativspeicher 41 erforderlich, um die Adresse der Segmente und der Seiten der Segmente in dem Hilfsspeicher festzulegen. Beide Assoziativspeicher sind Markierungs-Adresslisten, 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 Speicher, 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. Gemäss der vorliegenden Erfindung kann der Cache-Bereich 11 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 Grosse einer einzigen Dateninformationsseite beträgt 1 K Daten. Deshalb würde
509843/0832
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 vff-den. Die effektive Zugriffszeit in dem Cache-Speicher wird dadurch erzielt, dass der Cache-Speicher parallel für die vorhandenen Zentraleinheitsfunktionen betrieben wird. Die erfolgreiche Ausnutzung des Cache-Speichers erfordert, dass das Verhältnis der Abrufe von Dateninformationen aus dem Cache-Speicher gross 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 Wiederauffindung aus dem Hilfsspeicher nicht verzögern. Das System gemäss 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 Dateninformation von dem Cache-Bereich 11 über den ZD-Schalter 13 in einer wesentlich kürzeren Zeitspanne, ohne dass die Einheit der Quelle gewahr wird. Eine ausführlichere Beschreibung der Cache-Bereichs-Datenübertragungs-Steuereinheit findet sich an anderer Stelle (US-Patentanmeldung, Ser.No. 393 358 v. 31.8.73). In Fig. 2 ist ein Blockdiagramm des Cache-Bereichs 11 gezeigt, der den Cache-Speicher 10 und Teile der DatenübertragungsSteuereinheit 15 enthält.
509843/0832
Gemäss Fig. 2 enthält der Standard-Datenverarbeitungs-Datenübertragungs-Steuerbereich 15 eine Unterbrechungsgeneratorschaltung 16, eine Anschlussauswshlmatrix-Schaltung 17, ein Basisadressregister 18, einen Basisadressaddierer 19, ein Adressregister 21, eine Zentraleinheit-Adresslisten-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 oder um den Hilfsspeicher 4 gemäss Fig. 1 handeln kann. Die Speicheradresse wird von der Verarbeitungseinheit her erhalten, um die Dateninform gemäss den Adress-Signalen wieder aufzufinden. Der Cache-Bereich 11 enthält den Cache-Speicher 10, einen ZE-Schalter 26, ein Cache-Adressenverriegelungsregister 27, eine Markierungs-Adressliste 28, einen Vergleicher 29, ein Cache-Adressregister 30 und zugehörige Zähler sowie eine Steuerlogik, wie dies durch den Block 31 veranschaulicht ist.
Die Cache- oder Markierungs-Adressliste 28 legt den Speicherabschnitt oder Speicherblock in dem Cache-Speicher 10 fest. In der Markierungs-Adressliste 28 werden "Markierungs'i-Wörter gespeichert, um die absolute Adresse des jeweiligen Datenblockes wiederzugeben. Die Abbildung der Markierungs- bzw. Marken-Adressliste 28 gemäss der bevorzugten Ausführungsform wird als Vier-Ebenensatz-Assoziativabbildung bezeichnet. Die Abbildungsorganisation ist in Fig. 4 gezeigt. Die Markierungs-Adressliste ist in N Spalten, 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 2K-Cache-Speicher ist somit in 128 4-Wortblöcke unterteilt. Jeder Block ist direkt in einer entsprechenden Spalte der Adressliste abgebildet. Jede Spalte der Markierungs-Adressliste enthält Adressen von vier Blöcken, und zwar jede von einem anderen Abschnitt.
509843/0832
Die Austauschprozedur zum Zwecke des Ladens von neuen Blöcken in eine Spalte, die voll ist, erfolgt auf der Grundlage, dass die erste eingegebene Information die erste abgeführte Information ist. Diese Organisation wird als Umlauforganisation (RRO) bezeichnet.
Die Markierungs-Adressliste 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-Adressliste 28 werden adressiert und durch die effektiven Adressensignale ZCO9-15 festgelegt. Jede Spalte weist vier Ebenen bzw. Stufen auf, in denen die gespeicherten Adressensignale ALOO-08 gespeichert sind, die auf einen bestimmten Block in dem Cache-Speicher 10 hinweisen. Um die bestimmte Stufe der Markierungs-Adressliste und den bestimmten Speicherplatz der Dateninformation in dem Cache-Speicher festalegen, ist eine Umlaufschaltung erforderlich. Die Unterbringung der gespeicherten Adressensignale ALOO-08 hoher Wertigkeit in den Stufen der Markierungs-Adressliste 28 wird durch einen Ebenen- bzw. Stufen-Wähler 25 gesteuert. Der Stufen-Wähler 25 führt das Signal ALOO-08 in die Markierungs-Adressliste 28 ein, und zwar in Übereinstimmung mit der Umlaufschaltung. Die UmIaufschaltung, die gemäss der vorliegenden Erfindung verwendet wird, kann ein 2-Bit-Speicherabschnitt sein, der durch dieselben Signale adressiert wird, wie die Markierungs-Adressliste 28. Ein kombinierter VoIl-Leer-Speicher, der den Voll- oder Leer-Status der jeweiligen Spalte der jeweiligen Stufe bezeichnet, und ein Umlaufzähler sind in Fig. 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 umfasst. Der Cache-Speicher 10 weist vier Stufen auf, zu denen ein Zugriff durch die
509843/0832
Adressensignale CA und CB von dem Vergleicher 29 her erfolgt. Die Auslese-Dateninformationssignale DO +-DN , 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 Fig. 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 Speicherblockes ist oder ob ein Zugriff zu einem Doppelwort (beide Hälften) gleichzeitig zu erfolgen hat.
Die Datensignale DO-DN sind Dateneingabesignale (siehe Fig. 2), die durch den ZM-Schalter 12 eingegeben werden; die Signale DOout~DNout sind Datenausgabesignale, die den Hauptregistern der Zentraleinheit über den ZD-Schalter 13 zugeführt werden.
Im folgenden seien die Fig. 2 und 4 näher betrachtet. Die in der Markierungs-Adressliste 28 gespeicherte Dateninformation ist die Hauptspeicheradresse der in dem Cache-Speicher 10 gespeicherten Daten. Dabei sind lediglich neun Adressenbits in der Markierungs-Adressliste 28 gespeichert. Diese Bits sind die Adressenbits ALOO-08, die von dem Adressregister über den Schalter 26 zu der Markierungs-Adressliste hin geleitet werden. Durch Adressieren der Spalte der Markierungs-Adressliste 28 durch die effektiven Adressensignale ZCO9-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 veglichen, die von der Zentraleinheit angefordert sind. Diese Signale ALOO-08 sind entweder von dem Adressregister 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
509843/0832
- ty -
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-Adressliste - das sind die Signale M1, M2, M3 und M4 - mit den neun Adressensignalen ALOO-08 vergleichen. Wird eine Übereinstimmung durch sämtliche Signale in jeder Neun-Signal-Vergleicherschaltung Nr. 1, Nr. 2, Nr. 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 Fig. 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 CSOO-10 (siehe Fig. 2 und 3) werden von der Vergleicherlogik und der effektiven Adresse gebildet. Sodann erfolgt eine Abspeicherung in dem Cache-Adressregister 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 CC1-4 von der Markierungs-Adressliste 28 her und den Bits ZC09-17 von der effektiven Adresse gebildet.
Im folgenden sei auf Fig. 4 und 5 Bezug genommen, gemäss 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 CC1-4 zu decodieren. Die ODER-Glieder 37 und 38 erzeugen die
509843/0832
Adressensignale CA und CB, und zwar entweder aus den Vergleicherbit-Signalen CC1-4 auf eine Lese-Cache-Speicher-Operation hin oder aus den Umlaufsignalen RR1 und RR2 auf eine Schreib-Cache-Speicher-Operation hin. Ein Inverter 70 sperrt die UND-Glieder 71 und 72, falls irgendeines der Vergleichersignale CC1-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 Anschluss hinsichtlich der Vorbereitung einer Schreib-Cache-Speicher-Operation freigegeben. Die Umlaufzählersignale RR1 und RR2 legen die Ebenen bzw. Stufen der Spalten fest, die die nächste Dateninformationsadresse aufzunehmen haben. Die Umlaufzählersignale RR1 und RR2 werden decod-iert, um die Signale A, B, C und D zu erzeugen, die dem Stufen-Wähler 25 zugeführt werden.
Der Markierungs-Adresslisten-Abschnitt 28 enthält eine Verknüpfungsschaltung, durch die angezeigt wird, dass ein Block von Wörtern in dem Cache-Speicher 10 vollsläidig ist und dass 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 10 kann dadurch gelöscht werden, dass sämtliche Status-Bitsignale zurückgestellt werden. Der Cache-Speicher wird vollständig gelöscht, wenn die Zentraleinheit auf eine externe Unterbrechung antwortet, welche signalisiert, dass ein neues Programm einzuleiten ist. Der Cache-Speicher wird jedoch teilweise gelöscht, wenn die Seite der Dateninformation zu löschen ist. Bei der vorliegenden Ausführungsform besitzt eine Dateninformationsseite eine Grosse von etwa 1K, und der Cache-Speicher enthält 1K Dateninformationswörter.
509843/0832
Jede der 128 Stufen der Markierungs-Adressliste 28 weist eine Umlaufschaltung (RRO) auf, die die Spätte oder Markierung bzw. Marke der adressierten Stufe angibt, welche als nächste zu laden ist. Die Umlaufschaltung RRO ist mit der Voll-Leer-Statusbitsignalspeicherung in der in
Fig. 6 dargestellten Steuerlogik versehen. Die Umlaufwire
schaltungA^eitergerückt, wenn ein neuer Dateninformationsblock in dem Cache-Speicher 10 untergebracht wird. Die absoluten Adressenbits ALOO-08 werden in dem Markierungs-Adresslistenspeicherplatz abgespeichert, zu dem ein Zugriff durch die effektiven Adressenbits ZCO9-15 erfolgt. Die Umlaufschaltung besteht aus zwei Bitspeicherplätzen in jedem von einer Vielzahl von Sechs-Bit-Speicherchips, wie sie in Fig. 6 gezeigt sind, und zwar in Verbindung mit einer Zählereinsteil- oder Sprungzählerschaltung,-einem Binärzähler und einer 2-zu-4-Decoderform der UmIaufschaltung gemäss der vorliegenden Erfindung.
Die Umlauflogik und der Voll-Leer-Mechanismus enthalten, wie in Fig. 6 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-Adressliste und damit in einem bestimmten Speicherplatz des Cache-Speichers. Zwei 6-Bit-Speichereinheiten 43a und 43b, die in Fig. 6 gezeigt sind, enthalten einen Teil der acht Einheiten, die in der vorliegenden Ausführungsform vorgesehen sind. Jedes Speicherchip 43 ist als sechs Speicherpositionen RR1, RR2 und L1-L4 enthaltend dargestellt. Jede dieser Speicherpositionen enthält sechzehn Unterpositionen, so dass insgesamt 96 Informationsbits in jedem der Speicherchips 43 gespeichert werden können. Die 6-Bit-Speicherchips 43a und 43b enthalten.einen Adressenteil 44a und 44b, der durch eine Gruppe von vier
509843/0832
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äss Fig. 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 CHSEL1-8 bereitzustellen. Jedes Chip-Auswahlsignal wird einem der 6-Bit-Speicher-Chips 43 zugeleitet. Demgemäss 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 L1-L4 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öschsignal mit hohem Pegel auftritt oder freigegeben ist. Eine Cache-Speicher-Löschoperation führt dazu, dass sämtliche Signale RR1, RR2, L1 bis L4 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
509843/0832
Speicherchip 43a übertragen. Sie bewirken, dass 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, dass der 2-zu4-Decoder 93 ein Signal hohen Pegels auf der Α-Leitung abgibt. Das auf der A-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, dass 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 dass 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 L1-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 L2-Ausgangssignal abgegeben.
Auf die anschliessende Adressierung des Speicherchips 43a werden die Speicherplätze L3 und L4 adressiert, so dass ein Ausgangssignal auf den in gleicher Weise bezeichneten Ausgangsleitungen L3 bzw. L4 des Chips 43a erhalten wird. Die vier Bits L1 bis L4 in dem Chip 43a zeigen an, dass sämtliche vier Stufen der Adressenspalte voll sind und dass die zugehörigen Cache-Speicherplätze gültige Daten enthalten. Durch anschliessende Schreiboperationen bezüglich derselben Adressen in dem Chip 43a wird der Cache-Speicher aktualisiert. ,
509843/0832
251569S
Die Status-Signale RR1 und RR2 sind die Zeigersignale, die den Stufenabschnitt der Markierungs-Adressliste einstellen; die UND-Glieder 71 und 72 und die ODER-Glieder 37 und 38 (siehe Fig. 5) liefern die beiden Adressensignale CA und CB für den Cache-Speicher 10. Die Signale RR1 und RR2 v/erden durch eine Gruppe von Verknüpfungsgliedern 110 bis 118 gemäss Fig. 8 codiert, um die Spaltenplätze A bis D anzugeben, die in Verbindung mit den effektiven Adressensignalen ZC10-15 die bestimmten Stufen- und Spaltenplätze in der Markierungs-Adressliste 28 liefern. Die Spaltenplatzsignale A bis D werden dem Stufen- bzw. Ebenen-Wähler 25 zugeführt (siehe Fig. 4), der den Eintrag der gespeicherten Adressensignale ALO-08 in die Markierungs-Adressliste 28 steuert. Die Spaltenplatzsignale zeigen zu der Spalte der Markierungsadressliste hin, die die nächste Adresse der in dem Cache-Speicher abzuspeichernden Dateninformation aufzunehmen hat. Auf eine Löschoperation oder Einleitungsoperation hin werden die Signale RR1 und RR2 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-Adressliste untergebracht wird, wird der Umlaufzähler inkrementiert bzw. in seiner Zählerstellung erhöht. Ein A-Ausgangssignal mit hohem Pegel bewirkt, dass die gespeicherten Adressensignale ALOO-08 in der Α-Stufe bzw. Α-Ebene der Spalte untergebracht werden, die durch die effektiven Adressensignale ZC10-15 aufgerufen ist (siehe Fig. h). 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-Adressliste adressiert, werden die gespeicherten Adresrensignale in der B-Stufe der Adressenspalte untergebracht.
Die Anzeige bezüglich des Vorliegens von gültigen Daten in
509843/0832
dem Cache-Speicher wird dadurch erreicht, dass die Erzeugung .des Übereinstimmungssignals MATCH von dem Vergleicher/bewirkt wird. (Siehe Fig. 4) Das CC1-Signal von dem Vergleicher Nummer 1 wird lediglich dann freigegeben, wenn das L1-Signal freigegeben ist. Dies zeigt an, dass gültige Adressendaten in der Α-Stufe existierer und dass die dem Vergleicher zugeführten Signale übereinstimmen. Das CC2-Signal von dem Vergleicher Nummer 2 her wird lediglich dann freigegeben, wenn das L2-Signal freigegeben ist. Dies zeigt an, dass gültige Adressendaten in der B-Stufe gespeichert sind und dass die Signale für den Vergleicher übereinstimmen. Das CC3-Signal von dem Vergleicher Nr. 3 her ist lediglich dann freigegeben, wenn das L3-Signal freigegeben ist. Dies zeigt an, dass gültige Adressendaten in der C-Stufe gespachert sind. Das CC4-Signal von dem Vergleicher Nummer 4 her ist lediglich dann freigegeben, wenn das L4-Signal freigegeben ist. Dies zeigt an, dass gültige Adressendaten in der D-Stufe gespeichert sind. Die eigentliche Ausführung der Logik hinsichtlich der Steuerung des Vergleichers 29 durch die Signale L1 bis L4 dürfte als naheliegend anzusehen sein und ist deshalb hier nicht näher gezeigt. Die" mit der Markierungs-Adresslistenspalte 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 L1, L2, L3 und L4 in den 6-Bit-Speicherchips zurückzustellen, das heisst, sämtliche Voll-Leer-Signale L1 bis L4 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, dass keine gültigen Daten in einer
509843/0832
bestimmten Spalte enthalten sind. Auf diese Weise wird nämlich die Abgabe eines Ausgangssignals von dem Vergleicher 29 verhindert. Sämtliche sechs Bits in der Speichereinheit 43a und 43b werden auf Null gebracht bzw. gelöscht, und zwar durch ein Auslösesignal nach einer Einschaltoperation oder nach einer Löschoperation, so dass 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 eingegargen. 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äss Fig. 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äss Fig. 6 zugeführt werden. Der Zähler 66 nimmt eine Adressenzählersteilung von 0 bis 16 ein, um die Bitpositionen der Speicherzellen 43 gemäss Fig. 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 Speichereinheit zurückzustellen. Auf das Erreichen einer Zählerstellung 16 hin wird ein Übertragesignal CARRY von der Zählerschaltung freigegeben. Das betreffende Übertragsignal wird dem Rückstelleingang K des Flipflop 64 zugeführt, um die Löschoperation zurückzustellen und das CLEAR'-Signal wieder freizugeben.
509843/0832
Das die Löschoperation aktivierende INIT Clear-Signal wird aus den Signalen SAR und CAMS abgeleitet, die dem UND-Glied 74 zugeführt v/erden. Das SAR-Signal liefert die in Frage kommenden Zeitsteuersignale bzw. Taktsignale für die Löschoperatin.
Zurückkommend auf Fig. 6 sei bemerkt, dass das Löschsignal CLEAR, welches dem 3-zu-8-Decoder 50 zugeführt wird, sämtliche Chip-Auswahlsignale CHSEL1-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 SET-1-4 werden sämtlich unwirksam gemacht, und zwar dadurch, dass das Signal CLEAR1 unwirksam gemacht wird, welches dem UND-Glied 77 des modifizierten Inkrementzählers 55 zugeführt wird. Nachdem die Zählerschaltung 66 die Zählerstellung 16 zählt, ist daher der gesamte Cache - Speicher wirksam gelöscht, indem 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-Adressliste in dem Cache-Speicher wird dadurch ausgeführt, dass lediglich die Voll-Leer-Marken zurückgesetzt werden. Das Umlauf-Zeigersignal wird zurückgesetzt, um auf die A-Stufe der Markierungs-Adressliste zu zeigen.
Zur Ausführung des Cache-Speichers 10 sowie der anderen Speichereinheiten, wie der Markierungs-Adressliste 28, werden mit sehr hoher Geschwindigkeit arbeitende integrierte Schaltungspackungen verwendet. Die Cache-Speicher-Adresse (siehe Fig. 3) leitet die Adressierung der bestimmten Schaltungspackung zusammen mit einem bestimmten Wort oder einem Teil eines Wortes aus jeder Packung.
509843/0832
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, dass lediglich ein Teil des Cache-Speichers gelöscht wird, gibt die Verarbeitungseinheit
7 gemäss Fig. 1 einen CAMP OP-Code oder ein Signal"OP CODE = CAMP" und die Adresse des.in dem Cache-Bereich 11 gemäss Fig. 1 und 2 zu löschenden Teiles ab. Das Signal "OP CODE = 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 ALOO-
08 enthalten, das dem Eingang des Vergleichers 29 gemäss Fig. 2 und 4 zugeführt wird. Gleichzeitig veranlassen die Signale KNTO-3, dass die Inhalte der Register 28 der Markierungs-Adressliste sequentiell den Vergleicherschaltungen Nummer 1 bis Nummer 4 des Vergleichers 29 zugeführt werden, wie er in Fig. 4 dargestellt ist. Bei der ersten Zählerstellung beispielsweise, zu der KNTO-32 = Null ist, wird die Abgabe der Daten von dem Block AO, BO, CO und DO an eine entsprechende Vergleicherschaltung der Vergleicherschaltungen 1 bis 4 bewirkt. Diese den Vergleicherschaltungen 1 bis 4 zugeführten Signale verden mit den Signalen ALOO-08 verglichen. Wenn dabei eine Übereinstimmung auftritt, werden die Signale CC1 bis CC4 am'Ausgang irgendeiner dieser Schaltungen abgegeben, die eine Übereinstimmung ermittelt. Diese Signale CC1 bis CC4 werden der selektiven Löschschaltung 55 zugeführt, die in Fig. 6 gezeigt ist. Wenn eine Übereinstimmung in der Vergleicherschaltung Nummer 1 gemäss Fig. 4 auftritt, gibt die Vergleicherschaltung Nummer 1 das Signal CC1 ab, das invertiert und dem Verknüpfungsglied 83 der selektiven Löschschaltung 55 zugeführt wird. Das CC1-Signal wird über die Verknüpfungsglieder 83 und 88 gleitet und bewirkt, dass das L1-Bit in dem 6-Bit-Speicher-
509843/083 2
Chip 43a zurückgesetzt wird. Wenn das L1-Bit in dem Chip 43a zurückgesetzt ist, zeigt die»-an,··· dass der entsprechende Block in dem Cache-Speicher 10 gemäss Fig. ungültige Daten enthält; dieser Block ist für die Speicherung eines neuen Datenbits von dem Hilfsspeicher 4 gemäss Fig. her verfügbar. Wenn die Vergleicherschaltung Nummer 2 gemäss Fig. 4 ein Signal CC2 an die selektive Löschschaltung 55 gemäss Fig. 6 abgibt, wird in ähnlicher Weise das Signal über die Verknüpfungsglieder 84 und 89 geleitet und bewirkt, dass das L2-Bit des Speicherchips 43a zurückgesetzt wird.
ek Wenn es erwünscht ist, dass lediglich sel^ive Blöcke des Cache-Speichers mit neuen Daten gefüllt werden und dass die Daten in den anderen Blöcken unberührt bleiben, so werden die Springzählschaltung und die Zählereinstellschaltung 95 gemäss Fig. 6 verwendet. Diese Schaltungen würden normalerweise benutzt, nachdem einige der Blöcke, nicht jedoch sämtliche Blöcke, bezüglich der Daten gelöscht worden sind. Dabei ist es erwünscht, in einem "Blockladevorgang" Daten in einer Reihe von Blöcken in der Markierungs-Adressliste 28 und in dem Cache-Speicher 10 zu laden. Die Springzählschaltung enthält ein Paar von ODER-Gliedern 96 und 97 sowie eine Vielzahl von UND-Gliedern 99 bis und 135 bis 138. In einem normalen Ladevorgang würden Blöcke L1, L2, L3 und L4 nacheinander in jedes der Speicherchips 43 geladen werden. Wenn einige der Blöcke in dem Speicherchip leer sind und wenn einige Blöcke voll sind, bewirkt die Springzählschaltung, dass die leeren Blöcke geladen werden. Ferner wird die Ladeschaltung veranlasst, diejenigen Blöcke zu überspringen, die bereits Daten enthalten. Wenn zum Beispiel L2 und L3 des Speicherchips 43A mit Daten geladen sind und wenn die Blöcke L1 und L4 leer sind, läuft die Operationsablauffolge wie folgt ab. Wenn der Ladevorgang bei dem'Block L1 beginnt,
509843/0832
läuft die Operationsfolge bezüglich des Ladens des Blockes L1 in der oben beschriebenen Weise ab. Der nächste Schritt würde normalerweise darin bestehen, dass das Signal B von dem Decoder 93 her ein Signal abgibt, welches das Laden des Blockes L2 bewirken würde. Da der Block L2 jedoch bereits geladen ist, vird ein Signal L2 an das UND-Glied 100 des Spring- bzw. Sprungzählers abgegeben; ferner werden die Signale RR1 ' und RR2 von dem Zähler 9'+ an das UND-Glied 136 abgegeben, wodurch dem unteren Eingang des UND-Gliedes 100 ein Signal zugeführt wird. Zur selben Zeit wird ein Signal L4' über das Verknüpfungsglied 96 geleitet, wodurch das UND-Glied 100 übertragungsfähig wird. Dadurch wird ein Signal über das Verknüpfungsglied 97 dem Eingang der Zählereinstellschaltung 95 zugeführt.
In Fig. 9 sind Einzelheiten der Zählereinstellschaltung gezeigt. Das Sprungzählsignal und die Signale L1 und L2 werden dem UND-Glied 132 gemäss Fig. 9 zugeführt. Dadurch wird veranlasst, dass ein Signal über das ODER-Glied 129 abgegeben wird, wodurch ein R1-Signal dem Binärzähler 94 gemäss Fig. 6 zugeführt wird. Das R1-Signal bewirkt, dass der Binärzähler auf die nächste Zählerstellung springt. Da der Block L2 des Speicherchips 43a bereits voll ist, wird das L2-Signal von dem Speicherchip an den mittleren Eingang des UND-Gliedes 101 in der Sprungaählerschaltung abgegeben. Der Zähler 94 gibt die Signale RR1 und RR21 an das UND-Glied 137 ab, welches ein Signal an den unteren Eingang des Verknüpfungsgliedes 101 abgibt. Diese Signale sowie das Signal LL41 von dem ODER-Glied 96 her geben das Verknüpfungsglied 101 frei, so dass ein Sprungz ähl-Signal wieder der Zählereinstellschaltung 95 gemäss Fig. und 9 zugeführt wird. Das dem UND-Glied 124 zugeführte Sprungzählersignal gibt das betreffende Verknüpfungsglied 124 frei bzw. macht es übertragungsfähig. Gleichzeitig
509843/0832
werden die dem UND-Glied 122 zugeführten Signale L2 und L3 über das ODER-Glied 128 dem unteren Eingang des UND-Gliedes 124 zugeführt. Dies bewirkt, dass das UND-Glied 124 ein Signal über das ODER-Glied 133 an die Ausgangsleitung R2 abgibt. Dieses Signal, das auch als R2-Signal bezeichnet sei, wird dem Eingang des Binärzählers 94 gemäss Fig. 6 zugeführt; es bewirkt, dass der Zähler 94 auf eine weitere Zählerstellung springt, wodurch auf den Block L4 des Speicherchips 43a übergegangen wird.
Abschliessend sei bemerkt, dass durch die Erfindung erreicht worden ist, dass in einem Datenverarbeitungssystem, in welchem eine Programmunterteilung und Seitenbildung benutzt wird, um einen Zugriff zu einer Dateninformation zu erhalten, wie in einer virtuellen Speichermaschine, der vorgesehene Cache-Speicher nicht vollständig gelöscht werden muss, wenn jeweils eine Eingabe/Ausgabe-Operation ausgeführt wird oder wenn zum jeweiligen Zeitpunkt die in dem Cache-Speicher enthaltenen Daten möglicherweise nicht richtig sind. Mit der Programmunterteilung und Seitenbildung bracht lediglich ein Teil des Cache-Speichers gelöscht zu werden, wenn eine neue Seite von dem virtuellen Speicher er halten 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-Markierungsadressliste 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 Voll-Status der Spalte in der adressierten Stufe bzw. Ebene anzeigt. Jede Ebene bzw. Stufe der Markierungsadressliste wird adressiert.
509843/0832

Claims (9)

  1. Patentansprüche
    Anordnung zum selektiven Löschen von Teilen eines Cache-Speichers, der in einer Zentraleinheit eines Datenverarbeitungssystems enthalten ist, welches mit einer Programmunterteilung und Seitenbildung arbeitet, dadurch gekennzeichnet, dass adressierbare Speichereinheiten (28) vorgesehen sind, von denen jeweils eine einer Spalte einer mehrere Ebenen und mehrere Spalten aufweisenden adressierbaren assoziativen Einstell-Markierungsadressliste (28) bezüglich des mit dieser verbundenen Cache-Speichers (10) zugehörig ist, wobei die betreffendei Speiehereinheiten durch entsprechende Adressensignale aktiviert werden wie ihre zugehörige Spalte, dass jede Speichereinheit in dem Fall, dass sie gesetzt ist, ein Voll-Leer-Statusanzeigeglied speichert, welches die jeweilige Stufe der zugehörigen Spalte signalisiert, dass eine Zählereinrichtung (24) vorgesehen ist, die die Status-Anzeigesignale von der jeweiligen Speichereinheit aufnimmt und die ihr Ausgangssignal an die Speichereinheiten zum Zwecke der Abspeicherung in diesen Speichereinheiten abgibt, dass die Zählereinrichtung (24) die Status-Anzeigesignale in dem Fall inkrementiert, dass die jeweilige Speichereinheit durch ihre Adressensignale adressiert ist, dass die Speichereinheiten das Vorhandensein von gültigen Daten in dem mit ihnen verbundenen Cache-Speicher (10) durch das Vorhandensein von Status-Anzeigesignalen anzeigen, wobei das Vorhandensein von ungültigen Daten in dem zugehörigen Cache-Speicher (10) durch das Fehlen von Status-Anzeigesignalen angezeigt ist, dass mit der Zählereinrichtung (24) und den Speichereinheiten eine selektive Löscheinrichtung verbunden ist, die die Status-Anzeigesignale zurückzustellen gestattet, und dass zur selektiven Aktivierung an der Löscheinrichtung Einrichtungen angeschlossen sind, welche die betreffende Löscheinrichtung in dem
    509843/0832
    Fall aktivieren, dass die jeweilige Speichereinheit
    durch ihre Adressensignale aktiviert ist und dass ein selektives Löschsignal von der Zentealeinheit (2) aufgenommen wird.
  2. 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, dass die zur selektiven Aktivierung dienenden Einrichtungen einen Impulsgenerator (65) enthalten, der durch das selektive Löschsignal veranlasst ist, eine Impulsgruppe zu erzeugen, dass eine Zähl schaltung (66) die Impulsgruppe aufnimmt und Adressensignale erzeugt, welche die genannten Speichereinheiten nacheinander in Übereinstimmung mit der Zählschaltung (66) betätigen, und dass Vergleichereinrichtungen (29) vorgesehen sind, die die Adresse jeder der Speichereinheiten mit den zu löschenden Adressen vergleichen.
  3. 3. Anordnung nach Anspruch 1, dadurch gekennzeichnet, dass die Markierungs-Adressliste (28) vier Stufen je Spalte enthält und dass jede Speichereinheit sechs Informationsbits speichert, wobei zwei Informationsbits für die Stufenzählung und vier Informationsbits für die VoIl-Status-Signale dienen.
  4. 4. Anordnung zum selektiven Neuladen von Teilen eines Cache-Speichers, der in einer Zentraleinheit eines Datenverarbeitungssystems enthalten ist, in welchem mit Programmunterteilung und Seitenbildung gearbeitet wird, wobei das Neuladen lediglich in leeren Speicherbereichen erfolgt, insbesondere nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet,
    a) dass adressierbare Speichereinheiten vorgesehen sind, deren jede einer Spalte einer mehrere Stufen und mehrere Spalten aufweisenden adressierbaren Einstell-Assoziativ-Markierungs-Adressliste (28)
    509843/0832
    bezüglich des mit ihr verbundenen Cache-Speichers (10) zugehörig ist, wobei die betreffenden Speichereinheiten durch entsprechende Adressensignale aktiviert waden wie ihre zugehörige Spalte, dass jede Speichereinheit in dem Fall, dass sie gesetzt ist, Voll-Leer-Status-Anzeigesignale der jeweiligen Stufe ihrer zugehörigen Spalte speichert,
    b) dass eine Zählereinrichtung (24) die Status-Anzeigesignale von der jeweiligen Speichereinheit her aufnimmt und ihr Ausgangssignal an die Speichereinheiten für die Abspeicherung abgibt, dass die Zählereinrichtung (24) die Status-Anzeigesignale in dem Fall inkrementiert, dass die jeweilige Speichereinheit durch ihre Adressensignale adressiert ist,
    c) dass die Speichereinheiten das Vorliegen von gültigen Daten in dem mit ihnen verbundenen Cache-Speicher (10) durch das Vorhandensein der Status-Anzeigesignale anzeigen, wobei das Vorhandensein von nicht gültigen Daten in dem zugehörigen Cache-Speicher (10) durch das Fehlen von Ststus-Anzeigesignalen angezeigt ist, und dass an der Zählereinrichtung und den Speichereinheiten eine Sprungadressenschaltung (95) angeschlossen ist, wobei die Status-Anzeigesignale von den Speichereinheiten die Sprungadressenschaltung (95) veranlassen, ein Signal abzugeben, welches die Zählerstellung in der Zählereinrichtung (94) weiterschaltet, ohne dass eine Neuladung irgendwelcher Speichereinheiten erfolgt, die gültige Daten enthalten.
  5. 5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, dass die Sprungadressenschaltung eine an den Speichereinheiten angeschlossene Sprungzählschaltung (94) enthält, die mit den Speichereinheiten verbunden ist und die ein Sprungzählersignal jeweils dann erzeugt, wenn die betreffende Zähler-
    509843/0832
    einrichtung eine volle Speichereinheit adressiert und eine leere Speichereinheit verfügbar ist, und dass zwischen der Sprungzählerschaltung (94) und. der Zähl ere inrichtung eine Zähleinstellschaltung (95) vorgesehen ist, die die Zählereinrichtung veranlasst, in der Zählerstellung in dem Fall weiterzurücken, dass ein Sprungzählsignal gebildet ist.
  6. 6. Anordnung nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass die Markierungs-Adressliste (28) vier Stufen je Spalte aufweist, und dass jede der Speichereinheiten sechs Informationsbits speichert, wobei zwei Informationsbits für die Stufenzählung und vier Informationsbits für die Voll-Status-Signale dienen.
  7. 7. Anordnung zum selektiven Austausch von Daten in einem Cache-Speicher, der in einer Zentraleinheit eines Datenverarbeitungssystems enthalten ist, in welchem mit einer Programmunterteilung und Seitenbildung gearbeitet wird, insbesondere nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet,
    a) dass adreseierbare Speichereinheiten vorgesehen sind, deren jede mit einer Spalte einer eine Mehrzahl von Stufen und eine Mehrzahl von Spalten aufweisenden adressierbaren Einstell-Assoziativ-Markierungs-Adressliste (28) bezüglich ihres zugehörigen Cache-Speichers (10) verbunden ist, wobei die Aktivierung der Speichereinheiten durch entsprechende Adressensignale ihrer zugehörigen Spalte erfolgt, dass jede Speichereinheit in dem Fall, dass sie gesetzt ist, Voll-Leer-Statusanzeigesignale der jeweiligen Stufe ihrer zugehörigen Spalte speichert,
    b) dass eine Zählereinrichtung vorgesehen ist, die
    die Status-Anzeigesignale von der jeweiligen Speichereinheit aufnimmt und ihr Ausgangssignal an die
    509843/0832
    Speichereinheiten für die Abspeicherung abgibt, dass die Zähl ereinrichtung die Status-Anzeigesignale in dem Fall inkrementiert, dass die jeweilige Speichereinheit durch ihre Adressensignale adressiert ist,
    c) dass die Speichereinheiten das Vorhandensein von gültigen Daten in ihrem zugehörigen Cache-Speicher (10) durch das Auftreten von Status-Anzeigesignalen anzeigen, während das Vorhandensein von ungültigen Daten in dem zugehörigen Cache-Speicher (10) durch das Fehlen von Status-Anzeigesignalen angezeigt ist,
    d) dass mit der Zählereinrichtung und den Speichereinheiten selektive Löscheinrichtungen verbunden sind, die die Status-Anzeigesignale zurückzustellen gestatten,
    e) dass mit den Löscheinrichtungen Einrichtungen zur selektiven Ak-'tjvierung verbunden sind, welche die Löscheinrichtungen in dem Fall aktivieren, dass die jeweilige Speichereinheit durch ihre Adressensignale adressiert ist und dass ein selektives Löschsignal von der Zentraleinheit (2) durch sie aufgenommen ist, und
    f) dass mit den Zählereinrichtungen und den Speichereinheiten eine Sprungadressenschaltung verbunden ist, wobei die Status-Anzeigesignale von den Speichereinheiten (die Sprungadressenschaltung veranlassen, ein Signal abzugeben, durch welches die Zählerstellung in der Zählereinrichtung weiterrückt, ohne dass irgendwelche Speichereinheiten erneut geladen werden, in denen gültige Daten enthalten sind.
  8. 8. Anordnung nach Anspruch 7, dadurch gekennzeichnet, dass die zur selektiven Aktivierung dienenden Einrichtungen einen Impulsgenerator (65) enthalten, der durch das selektive Löschsignal aktiviert eine Gruppe von Impulsen erzeugt, dass eine Zählerschaltung (66) vorgesehen ist,
    509843/0832
    die die betreffende Gruppe von Impulsen aufnimmt und die Adressensignale- erzeugt, welche die Speichereinheiten entsprechend der Zählerstellung der Zählerschaltung (66) nacheinander betätigen, und dass Vergleichereinrichtungen vorgesehen sind, die die Adresse jeder der Speichereinheiten mit den Adressen vergleichen, die zu löschen sind.
  9. 9. Anordnung nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass mit den Speichereinheiten eine Sprungzählschaltung verbunden ist, die ein Sprungzählsignal jeweils dann abgibt, wenn die Zählereinrichtung eine volle Speichereinheit adressiert und v/enn eine leere Speichereinheit verfügbar ist, und dass zwischen der Sprungzählschaltung und der Zählereinrichtung eine Zählereinstellschaltung (95) eingefügt ist, die die Zählereinrichtung veranlasst, in der Zählerstellung in dem Fall weiterzurücken, dass ein Sprungzählsignal gebildet ist.
    509843/0832
    SY
    Leerseite
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 true DE2515696A1 (de) 1975-10-23
DE2515696C2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb
US5809274A (en) * 1985-03-15 1998-09-15 Hitachi, Ltd. Purge control for ON-chip cache memory
USRE38651E1 (en) * 1994-05-18 2004-11-09 Altera Corporation Variable depth and width memory device

Families Citing this family (51)

* 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
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
FR2472232B1 (fr) * 1979-12-14 1988-04-22 Honeywell Inf Systems Dispositif et procede d'effacement d'antememoire
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
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
EP0128945B1 (de) * 1982-12-09 1991-01-30 Sequoia Systems, Inc. Sicherstellungsspeichersystem
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
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.
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
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
EP0362366B1 (de) * 1988-04-01 1995-09-13 Digital Equipment Corporation Befehlscachespeicher mit flush-on-rei-steuerung
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 株式会社東芝 キャッシュメモリ内蔵マイクロプロセッサ
WO1992007323A1 (en) * 1990-10-12 1992-04-30 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 株式会社日立製作所 データプロセッサ
AU2663095A (en) * 1994-06-10 1996-01-05 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
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
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
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 京セラドキュメントソリューションズ株式会社 電子機器及び情報更新プログラム
WO2020167234A1 (en) * 2019-02-14 2020-08-20 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的数据处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3800292A (en) * 1972-10-05 1974-03-26 Honeywell Inf Systems Variable masking for segmented memory

Family Cites Families (7)

* 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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3800292A (en) * 1972-10-05 1974-03-26 Honeywell Inf Systems Variable masking for segmented memory

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
dito, 1970, S.95-103 *
Elektronische Rechenanlagen 1968, S.135-140 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb
US5809274A (en) * 1985-03-15 1998-09-15 Hitachi, Ltd. Purge control for ON-chip cache memory
USRE38651E1 (en) * 1994-05-18 2004-11-09 Altera Corporation Variable depth and width memory device

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2515696A1 (de) Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE3151745C2 (de)
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2501853A1 (de) Prozessor fuer ein datenverarbeitungssystem
DE2331589A1 (de) Datenverarbeitungsanordnung
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2117936A1 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2746505C2 (de)
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE2718110A1 (de) Datenverarbeitungseinheit
EP0010186B1 (de) Vorrichtung zum Bearbeiten bezeichneter Hinweise
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE2640357A1 (de) Wortgruppenprioritaetsanordnung
DE2926322A1 (de) Speicher-subsystem
DE2744359C2 (de)
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE1285218B (de) Datenverarbeitungsanlage
CH495584A (de) Datenverarbeitungsanlage
DE3000012A1 (de) Schaltungsanordnung zur ausfuehrung eines uebertragungsbefehls in einer datenverarbeitungsanlage
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
DE2458777C2 (de) Schaltungsanordnung zur Textverarbeitung
DE2000608C3 (de) Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage
DE1296429B (de) Datenbearbeitungsanlage

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