DE2853165C2 - - Google Patents

Info

Publication number
DE2853165C2
DE2853165C2 DE19782853165 DE2853165A DE2853165C2 DE 2853165 C2 DE2853165 C2 DE 2853165C2 DE 19782853165 DE19782853165 DE 19782853165 DE 2853165 A DE2853165 A DE 2853165A DE 2853165 C2 DE2853165 C2 DE 2853165C2
Authority
DE
Germany
Prior art keywords
memory
data
address
cache
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE19782853165
Other languages
English (en)
Other versions
DE2853165A1 (de
Inventor
Charles P. Phoenix Ariz. Us Ryan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Bull Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Bull Inc filed Critical Honeywell Bull Inc
Publication of DE2853165A1 publication Critical patent/DE2853165A1/de
Application granted granted Critical
Publication of DE2853165C2 publication Critical patent/DE2853165C2/de
Granted 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Description

Die Erfindung bezieht sich auf Cachespeicher mit Austauscheinheit in Rundschreibtechnik. Ein adressierbarer Datenspeicher weist unter jeder Speicherplatzadresse n Speicherelementgruppen auf. Ein Speicherregister dient zum Vorhalten eines Zählwertes für jeden Speicherplatz, wobei dieser Zählwert die letzte Speicherelementgruppe angibt, in die ein Datenwort eingegeben wurde und wobei dieser Zählwert jedesmal um Eins inkrementiert wird, wenn ein Datenwort in eine Speicherelementgruppe eingegeben wird und wobei schließlich die wiederholte Inkrementierung um Eins bezüglich dieses Zählwertes eine zyklische Variation bei der Darstellung der n Speicherelementgruppen bewirkt.
Es ist bekannt, zur Steigerung der Leistungsfähigkeit der Verarbeitung von Daten in einer Datenverarbeitungsanlage sogenannte Cachespeicher zu verwenden. Die Leistungsfähigkeit einer Datenverarbeitungsanlage ist zumindest teilweise durch die Zeitspanne bestimmt, die erforderlich ist, um Daten aus einem Hauptspeicherplatz wiederzugewinnen, und zwar für die Verwendung durch die Zentraleinheit. Mit hoher Geschwindigkeit arbeitende Speichereinheiten sind jedoch aufgrund ihres hohen Preises für die Speicherung von großen Datenmengen prohibitiv. Als Kompromiß kann eine Datenverarbeitungsanlage einen großen und relativ langsamen Hauptspeicher für die Massenspeicherung von Daten und einen kleineren Hochgeschwindigkeits-Speicher besitzen, auf den die Zentraleinheit ohne weiteres direkten Zugriff hat. Der kleine Speicher, der als Cachespeicher bezeichnet wird, speichert lediglich diejenigen Daten, die die Zentraleinheit unmittelbar benötigt, um den Betrieb fortzusetzen.
Die Organisation der Speicherplätze des Cachespeichers kann so getroffen sein, daß eine Gruppe der Speicherplätze solange nicht vollständig festgelegt ist, bis die gesamte Hauptspeicheradresse der Daten bezeichnet worden ist, die gerade in dem Cachespeicher gespeichert werden. Demgemäß wird eine aus dem Speicher wieder abgerufene Datengruppe in einem Speicherplatz einer Vielzahl von redundanten Speicherplätzen untergebracht (jedenfalls insoweit, als das Cachespeicher-Adressenformat betroffen ist). Schließlich werden sämtliche redundanten Cachespeicherplätze alte und neue Daten enthalten, die von dem Rechner benötigt werden, und überdies werden in den betreffenden Speicherplätzen die alten Daten ersetzt.
Es sind bereits zwei mögliche Strategien bekannt, um Daten in Gruppen von Speicherplätzen innerhalb des Cachespeichers zu ersetzen. Die eine Strategie besteht darin, Daten zu ersetzen, die in der Gruppe der Speicherplätze während der längsten Zeitspanne unverändert unbenutzt gewesen sind. Eine weniger komplizierte Strategie besteht darin, die Daten in der Gruppe durch eine sogenannte Rundschreibtechnik zu ersetzen. Die vorliegende Erfindung bezieht sich auf die zuletzt genannte Methode.
Bei dem Rundschreib-Austauschalgorithmus kann der nächste Speicherplatz in der normalen Ablauffolge gerade nicht verfügbar sein, und zwar beispielsweise infolge der Ermittelung von Fehlern, die in die Daten aufgrund der Einspeicherung in den betreffenden Speicherbereich eingeführt worden sind. Diese fehlende Verfügbarkeit des betreffenden Speicherplatzes würde zu der Forderung führen, die nächste Speicherplatzadresse in der Ablauffolge zu bestimmen. Die Bestimmung eines neuen Speicherplatzes kann eine Verzögerung mit sich bringen, was die Leistungsfähigkeit der Datenverarbeitungseinheit beeinträchtigt.
Die Verwendung von Rundschreibebits ist bereits bekannt, z. B. aus dem US-Patent 38 40 862, wo die Verwendung von Rundschreibe- oder "round-robin"-Bits in Verbindung mit einem Gültigkeitsbit für das Datenauslesen gezeigt ist. Eine Inkrementierung um Eins der Rundschreibebits erfolgt bei jedem Schreiben unabhängig vom Status des Gültigkeitsbits, das dort kein Indikator für eine defekte Speicherzelle ist.
In der deutschen Auslegeschrift 12 49 926 ist eine Einrichtung zum Umadressieren fehlerhafter Speicherstellen eines beliebig zugänglichen Hauptspeichers in einer Datenverarbeitungsanlage beschrieben. Das dort offenbarte System zur Identifizierung und zum Überspringen defekter Speicherplätze ist sehr komplex, schaltungstechnisch aufwendig und relativ langsam. In einem besonderen Speicher (CAM) werden die Adressen aller individueller defekter Speicherzellen und der entsprechenden zu substituierenden guten Speicherzellen gespeichert und vorgehalten. Bei jedem Speicherzugriff wird die Zugriffsadresse mit allen im CAM vorgehaltenen defekten Adressen verglichen. Ergibt sich dabei eine Übereinstimmung, so wird die defekte Adresse durch eine gute Adresse substituiert.
Bei dem im GB-Patent 11 24 017 beschriebenen Datenspeicher wird jeder Speicherzelle eine zusätzliche Information in der Form eines Bits hinzugefügt, die deren Verfügbarkeit anzeigt und zur Auswahl einer zu beschreibenden Speicherzelle verwendet wird. Dieses Indikatorbit bei jeder Speicherzelle wird - wenn benutzt - auf Eins gesetzt. Der Auffüllalgorithmus sucht nach der ersten Null, um einen verfügbaren Speicherplatz aufzufüllen. Weil bei dieser Methode das Indikatorbit selbst Teil des Speicherplatzes ist, kann es auch nicht zum Überspringen desselben Speicherplatzes, wenn dieser defekt ist, verwendet werden.
Dem Stand der Technik ist somit keine Maßnahme oder Lehre zu entnehmen, welche eine Blockauswahl (Speicherelementgruppenauswahl) im Cachespeicher für abzuspeichernde Daten unter gleichzeitiger Berücksichtigung defekter Speicherzellen realisiert.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, einen verbesserten Cachespeicher zu schaffen, bei dem eine Auswahl von Speicherelementgruppen unter gleichzeitiger Berücksichtigung defekter Speicherzellen ermöglicht wird, wobei nicht verfügbare Gruppen übersprungen werden.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die im Patentanspruch angegebenen kennzeichnenden Merkmale.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert. Es zeigt
Fig. 1 das Blockdiagramm einer Datenverarbeitungsanlage, in der ein Cachespeicher verwendet wird;
Fig. 2 in Form eines Diagramms das in der Datenverarbeitungsanlage benutzte Adressenformat für den Betrieb des Cachespeichers;
Fig. 3 das Blockdiagramm des Cachespeichers zur Veranschaulichung der Organisationsstruktur; und
Fig. 4 schematisch in einem Blockschaltbild eine Auswahlanordnung für Cachespeicherplätze.
Die Datenverarbeitungsanlage gemäß Fig. 1 umfaßt eine Zentraleinheit 50, einen Cachespeicher 100 und eine Schnittstelleneinheit 60, die mit dem Hauptspeicher 70 verbunden ist. Die Einheiten 50, 60 und 70 können selbst wieder aus einer Vielzahl einzelner Subeinheiten bestehen, die in bekannter Weise miteinander verbunden und gekoppelt sind und zur Ausführung der Datenverarbeitung entsprechend gesteuert werden.
In Fig. 2 ist das Format einer Datenadresse dargestellt. Danach enthält eine Datenadresse 24 binäre Datenbits. Die 15 Bits höchster Wertigkeit bezeichnen eine Seitenadresse von Daten. Jede Daten- Seitenadresse umfaßt 512 Datenwörter. Bei der vorliegenden Ausführungsform enthält jedes Wort 40 binäre Datenbits. Diese Zahl ist dabei eine Frage der Schaltungsauslegung. Von den durch die übrigen neun Bits bezeichneten 512 Datenwörtern der jeweiligen Datenseite ist jedem Wert der nächsten sieben Datenbits ein Speicherplatz aus einer Gruppe von Speicherzellen in dem Cachespeicher zugehörig, und außerdem stellen die betreffenden Daten-Bits eine Speicherplatzadresse in dem Cachespeicher dar. Der Cachespeicher weist 128 Speicherplätze auf, die durch die sieben Bits der zweithöchsten Wertigkeit bestimmt sind. Die vier Bits der niedrigsten Wertigkeit des Adressenformats werden bei der vorliegenden Ausführungsform nicht zur Bezeichnung einer Wortadresse im Cachespeicher herangezogen. Zur Erzielung eines wirksamen Datenaustausches zwischen dem Cachespeicher und dem Hauptspeicher wird ein Block von vier Datenwörtern im Zuge der jeweiligen Datenübertragungsoperation übertragen. Da die Datenübertragung in Blöcken vorgenommen wird, besteht keine Forderung dahingehend, die Bits niedrigster Wertigkeit dazu heranzuziehen, die übertragene Information für den Hauptspeicher zu kennzeichnen. Die den Block bildenden vier Wörter werden bei normaler Datenübertragung in jedem Fall immer vorhanden sein. Bei der in Fig. 2 gezeigten Darstellung beginnt das Adressenformat bei der Bitposition Null. Hierbei handelt es sich jedoch um eine Frage der Auslegung. So können auch andere Adressenformate verwendet werden. In entsprechender Weise kann das Adressenformat eine zusätzliche Information enthalten, wie Paritäts- oder Statusbezeichnungen, wenn das Adressenformat eine größere Gruppe von binären Datenbits (d. h. größer als 24) darstellt.
In Fig. 3 sind schematisch in einem Blockdiagramm die Hauptkomponenten eines Cachespeichers, eine Datenverarbeitungsanlage dargestellt. Die Datensignale sind in einer Cachespeichereinheit 101 gespeichert. Dieser Speicher besteht aus Speichereinrichtungen mit wahlfreiem Zugriff, aus denen Datensignale ausgelesen werden können bzw. in den Datensignale eingespeichert werden können, und zwar aus adressierten Speicherzellen bzw. in adressierte Speicherzellen. Die Organisation der Cachespeichereinheit 101 ist so getroffen, daß 128 Speicherplätze vorhanden sind, die mit Speicherplatz Null bis Speicherplatz 127 bezeichnet sind. Für jeden Speicherplatz sind vier Gruppen von Blöcken von Speicherzellen (Speicherelementgruppen) vorgesehen, die mit Block 0 bis Block 3 bezeichnet sind. Jeder der vier Blöcke kann vier Speicherwörter enthalten, die mit Wort 0 bis Wort 3 bezeichnet sind. Vier Datenwörter aus einem ausgewählten Block eines ausgewählten Speicherplatzes innerhalb der Cachespeichereinheit 101 können der Befehlspufferschaltung 300 für eine anschließende Übertragung zu der Datenverarbeitungseinheit zugeführt werden. Die Datensignale werden in die Speichereinheit 101 durch ein Datenregister 140 eingegeben, welches unter der Steuerung der Cachespeichersteuerschaltungen 200 steht. Die Cachespeichersteuerschaltungen 200 steuern außerdem das Adreßregister 130. Das Adreßregister 130 ist mit der Cachespeichereinheit 101, einer Cachespeicher- Inhaltsverzeichniseinheit 102 und mit einer Steuerspeichereinheit 150, die die Verzeichnis-Steuerschaltungen umfaßt, verbunden. Die Cachespeicher-Inhaltsverzeichniseinheit 102 ist in vier Blöcke unterteilt, wobei jeder Block 128 Speicherplätze aufweist. Dabei weist diese Einheit eine ähnliche Struktur auf, wie die Speichereinheit 101. Eine Ausnahme hiervon bildet jedoch der Umstand, daß eine zusätzliche Wort-Struktur vorgesehen ist. Die Cachespeicher-Inhaltsverzeichniseinheit enthält außerdem Speicherschaltungen mit wahlfreiem Zugriff. Der Inhalt der Blöcke eines adressierten Speicherplatzes in der Speicher-Inhaltsverzeichniseinheit 102 wird an vier Vergleichernetzwerke 111 bis 114 abgegeben. Die Ausgangssignale der Vergleichernetzwerke werden dem Datenstatus-Entscheidungsnetzwerk 120 zugeführt. Die Ausgangssignale dieses Datenstatus-Entscheidungsnetzwerks 120 können an die vier Blöcke von Speicherzellen in der Cachespeichereinheit und an die vier Blöcke von Speicherzellen abgegeben werden, die in der Cachespeicher-Inhaltsverzeichniseinheit enthalten sind, um den die in Frage kommenden Signale aufnehmenden Block zu aktivieren. Die Ausgangssignale des Datenstatus-Entscheidungsnetzwerks 120 werden außerdem an die Steuerspeichereinheit 150 der Cachespeicher- Inhaltsverzeichniseinheit abgegeben. Das Adreßregister 130 ist ferner mit den vier Blöcken der Speicherzellen der Cachespeicher-Inhaltsverzeichniseinheit 102 und mit den Vergleichernetzwerken 111 bis 114 gekoppelt. Die Steuerspeichereinheit 150 der Cachespeicher-Inhaltsverzeichniseinheit sind in ein Verzeichnis-Steuerregister und in Verzeichnis-Steuerschaltungen unterteilt.
In Fig. 4 ist in einem Blockschaltbild eine Auswahlanordnung in Form eines Netzwerks gezeigt, das Teil der Steuerspeichereinheit 150 der Cachespeicher- Inhaltsverzeichniseinheit ist. Das Verzeichnis-Steuerregister 151 besteht aus einer Vielzahl von Adressenschaltungen 151 A, welche die Adressierung von 128 Speicherplätzen ermöglichen, deren jeder eine Vielzahl von Datensignalen speichert. Das Verzeichnis-Steuerregister der Cachespeicher-Inhaltsverzeichniseinheit ist in Gruppen unterteilt, die eine auf die Cachespeichereinheit sich beziehende Statusinformation enthalten. Die Statussignale umfassen vier Signale für die Voll/Leer-Anzeige 151 B, vier Signale für die Anzeige betreffend die gegenwärtige Übertragung 151 C und zwei Signale, die die gerade erst benutzte oder letzte Zugriffsadresse 151 D bezeichnen. Diese Signale beinhalten die Information über die vier Blöcke von Speicherzellen (Speicherelementgruppen) in der Cachespeichereinheit für jeden der 128 Speicherplätze.
Die Ausgangsschaltungen, welche auf den letzten Zugriffszeiger sich beziehende Signale liefern, sind mit dem Zeigerregister 153 gekoppelt. Die Ausgangssignale des Zeigerregisters 153 werden einer Verfügbarkeitsschaltung 164 und einer Inkrementierungsschaltung 155 zugeführt. Die Eingangsanschlüsse der Verfügbarkeitsschaltung 164 sind ebenfalls an Ausgangsanschlüssen eines ODER-Gliedes 154 angeschlossen. Die Ausgangssignale der Verfügbarkeitsschaltung 164 werden einer Detektorschaltung 156 zugeführt, die die Null höchster Wertigkeit ermittelt. Die Ausgangssignale dieser Detektorschaltung 156 werden einem Codierer 157 zugeführt. Die Ausgangssignale des Codierers 157 werden ihrerseits der Inkrementierungsschaltung 155 zugeführt. Die Ausgangssignale dieser Inkrementierungsschaltung 155 werden einem Schalter 158 zugeführt. Die Ausgangssignale des Schalters 158 werden den Eingangsschaltungen eines den gegenwärtigen Zeiger enthaltenden Zeigerbereichs 151 D in dem Verzeichnis-Steuerregister zugeführt und außerdem zur Abgabe eines Verzeichnis-Schreibadressenfreigabesignals herangezogen.
Zusätzlich zu den in dem Verzeichnis-Steuerregister gespeicherten Statusbits enthält die Blockauswahlschaltung ferner ein 4-Bit-Register 159, welches das Vorhandensein eines Ausfallblocks der Speichereinheiten anzeigt. Das Ausfallblock-Register 159 ist mit den ODER-Gliedern 160 und 154 verbunden. Derjenige Bereich des Steuerregisters 151, der Zeiger bezüglich der gegenwärtigen Übertragung aufweist, ist ebenfalls mit dem ODER-Glied 154 verbunden. Derjenige Bereich des Steuerregisters 151, der Voll/Leer-Zeiger enthält, ist mit dem ODER-Glied 160 verbunden. Das ODER-Glied 160 ist mit einem Anfangs-Verfügbarkeitsregister 161 verbunden, dessen Ausgangssignale der für die höchstwertige Null vorgesehenen Null-Detektorschaltung 162 zugeführt werden. Andere Ausgangssignale des Registers 161 werden dem Schalter 158 zugeführt. Der für die höchstwertige Null vorgesehene Detektor 162 ist mit einem Codierer 163 gekoppelt, der seinerseits mit dem Schalter 158 gekoppelt ist. Dem Schalter 158 werden Steuersignale in Anpassung an diejenigen Operationen zugeführt, bei denen die Ergebnisse der Blockauswahlschaltung nicht benötigt werden. Dem Zeitgeberbereich für die gegenwärtige Übertragung und dem Voll/Leer-Zeigerbereich der Zeiger-Steuerregisters werden ferner extern gebildete Signale zugeführt, um die Statusinformation bereitzustellen. Das Speicherplatz-Adressensignal wird von dem Adreßregister 130 her aufgenommen.
Nunmehr wird die Arbeitsweise der bevorzugten Ausführungsform der Erfindung erläutert. Die grundsätzliche Anwendung einer Cachespeichereinheit besteht darin, für die Zentraleinheit Daten verfügbar zu machen, die in der Hauptspeichereinheit gespeichert sind, ohne dabei die Wartezeit abwarten zu müssen, die normalerweise mit der Bereitstellung der Hauptspeicherdaten verknüpft ist. Der Cachespeicher ist daher ein Hochgeschwindigkeitsspeicher, der Daten enthält, die unmittelbar von der Zentraleinheit für eine ununterbrochene Operationsabfolge benötigt werden. Wie in Fig. 1 dargestellt, ist der Cachespeicher 100 elektrisch mit der Zentraleinheit 50 und der Schnittstelleneinheit 60 gekoppelt. Die Zentraleinheit 50 kann in entsprechender Weise mit der Schnittstelleneinheit 60 bei gewissen Datenverarbeitungssystemen direkt gekoppelt sein. Die tatsächliche Ausnutzung der elektrischen Verbindungswege, die die Systemkomponenten miteinander verbinden, hängt von dem Betriebsverfahren ab. So können beispielsweise in gewissen Datenverarbeitungssystemen Daten unter gewissen Umständen direkt an die Zentraleinheit 50 abgegeben werden. In anderen Systemen müssen die von der Zentraleinheit 50 benötigten Daten stets an die Cachespeichereinheit 100 abgegeben werden, bevor sie zu der Zentraleinheit hin übertragen werden. Wie an sich verständlich sein dürfte, existiert eine Vielzahl von Verfahren, nach denen die Datenverarbeitungseinheit den Cachespeicher für einen wirksamen Betrieb ausnutzen kann.
Bei der bevorzugten Ausführungsform der Erfindung wird ein Adressenformat der in Fig. 2 dargestellten Form zur Festlegung einer Adresse in der Hauptspeichereinheit 70 herangezogen. Die 15 Bits höchster Wertigkeit bezeichnen eine Seitenadresse, die sieben Bits zweithöchster Wertigkeit bezeichnen eine Speicherplatzadresse, während die beiden Bits niedrigster Wertigkeit in Verbindung mit den übrigen 22 Bits ein bestimmtes Wort oder eine bestimmte Gruppe von Datensignalen bezeichnen, die in dem Hauptspeicher gespeichert sind. Bei der bevorzugten Ausführungsform der Erfindung werden die Bits niedrigster Wertigkeit von der Hauptspeichereinheit in Normalbetrieb nicht verwendet. Bei einer typischen Datenübertragung werden vier Datengruppen oder Wörter auf die Aufgabe eines Befehls hin übertragen. Nachdem die Zentraleinheit die Hauptspeicheradresse gebildet hat, werden somit lediglich die 22 Bits höchster Wertigkeit ausgenutzt, und sämtliche dadurch bezeichneten vier Wörter werden übertragen.
Nachdem die Zentraleinheit die Adresse der aus dem Hauptspeicher benötigten Daten gebildet hat, wird die betreffende Hauptspeicheradresse an die Cachespeicher- Steuerschaltungen 200 abgegeben und in das Adreßregister 130 eingeführt.
Zu diesem Zeitpunkt beginnen die Cachespeicher-Steuerschaltungen 200 einen Zeiger-Suchzyklus. Im Zuge der Ausführung eines Zeiger-Suchzyklus wird die Adresse der Daten gesucht, die die Zentraleinheit aus dem Cachespeicher abrufen möchte.
Die Hauptspeicheradresse wird in das Adreßregister 130 eingeführt, da die 15 Bits höchster Wertigkeit, der Seitenadressenteil der Adresse, den vier Vergleicherregistern 111 bis 114 zugeführt wird.
Gleichzeitig werden die sieben Bits des Speicherplatz- Adressenbereichs der Hauptspeicheradresse an den diesbezüglichen einen Speicherplatz der 128 Speicherplätze in dem Cachespeicher, an die Cachespeicher- Inhaltsverzeichniseinheit 102 und an das Zeiger- Steuerregister der Zeiger-Steuerschaltung des Cachespeichers abgegeben. Die Speicherplatzadresse gibt die vier Datenblöcke enthaltenden Schaltungen in der Cachespeicher-Inhaltsverzeichniseinheit frei, und die Zeigerinhalte werden an die Vergleicherschaltungen 111 bis 114 abgegeben. Die Inhalte der vier Blöcke des Cachespeicher-Verzeichnisses sind 15-Bit- Seiten-Hauptspeicheradressen. Wenn somit der Seitenadressenteil der Hauptspeicheradresse in dem Adreßregister in einem der vier Blöcke des Cache-Verzeichnisses gefunden wird, dann wird ein "Treffer"-Signal an das Datenstatus-Entscheidungsnetzwerk 120 abgegeben. Das "Treffer"-Signal zeigt an, daß die gewünschten Daten in dem diesbezüglichen Block unter derselben Speicherplatzadresse in der Speichereinheit gespeichert sind.
Der Speicherplatz-Adressenteil des Adreßregisters 130 ermöglicht bei Abgabe an die Steuerspeichereinheit 150, daß die Registerzelle Statussignale speichert und diese Statussignale an das Entscheidungsnetzwerk 120 abgibt. Bei der bevorzugten Ausführungsform werden die Typen der Statussignale wie folgt verwendet: 1) Ein Voll/Leer-Zeiger ist ein positives Signal, wenn gültige Daten in der entsprechenden Cachespeichereinheit gespeichert sind; 2) ein anstehender Bit-Zeiger ist positiv, wenn Daten in den Übertragungsprozeß vom Hauptspeicher in die Cachespeichereinheit einbezogen sind, so daß die Seitenadresse bereits in die Cachespeicher-Zeigereinheit eingegeben worden ist; 3) ein Ausfall- bzw. Fehlblock-Zeiger ist positiv, wenn der diesbezügliche eine Block der vier Blöcke der Speicherzellen als der Block identifiziert worden ist, der bei den darin gespeicherten Daten Fehler hervorruft.
Unter der Annahme, daß die Statussignale zutreffen, wenn ein "Treffer" durch das Datenstatus-Entscheidungsnetzwerk festgestellt wird, befinden sich die gültigen Daten in der Cachespeichereinheit. Die Speicherplatzadresse des Adreßregisters 130 hat vier Datenblöcke (deren jeder vier Wörter enthält) freigegeben, und zwar in bezug auf die Speicherplatzadresse in der Cachespeicher-Inhaltsverzeichniseinheit. Der "Treffer" in der Seitenadresse eines der vier Blöcke des Cachespeicher-Verzeichnisses zeigt an, daß die vier Datenwörter in dem diesbezüglichen Block der Cachespeichereinheit untergebracht sind. Das Datenstatus-Entscheidungsnetzwerk gibt ein Signal an den in Frage kommenden Block der Speichereinheit ab. Die vier benötigten Datenwörter werden in dem Befehlspuffer abgelegt und von der Zentraleinheit wieder abgeholt.
Die Abgabe der Speicherplatzadressensignale an die Verzeichnis-Steuerschaltung veranlaßt diese Schaltung, den nächsten Block auszuwählen, in den die vom Hauptspeicher benötigten Daten abgespeichert werden sollten. Diese Festlegung basiert auf dem Austausch-Algorithmus, gemäß dem die erste eingegebene Information die erste ausgegebene Information ist (das sogenannte FIFO-Prinzip), wobei dieser Algorithmus durch die mögliche Nichtverfügbarkeit von Speicherplätzen modifiziert ist, wie dies durch die Statussignale bestimmt wird. Im Falle des Auftretens eines "Treffers" wird die Blockbestimmung nicht herangezogen. Wenn jedoch ein "Ausbleiben" oder Fehlen der geforderten Daten von dem Datenstatus- Entscheidungsnetzwerk angezeigt wird, dann wird der durch die Verzeichnis-Steuerschaltung der Cachespeichereinheit bezeichnete Block von dem Datenstatus- Entscheidungsnetzwerk 120 freigegeben. Die Seitenadresse wird sodann in dem bezeichneten und freigegebenen Block des Verzeichnisses abgespeichert, und das passende anstehende Bit-Signal wird in dem Verzeichnis- Steuerregister 150 gesetzt. Die Cachespeicher- Steuerschaltungen rufen sodann die vier Datenwörter anhand der Hauptspeicheradresse ab, die in dem Adreßregister 130 bezeichnet ist. Die wieder abgeholten Daten werden in das Datenregister 140 eingegeben. Wenn die Datenwörter verfügbar sind, werden die Daten in den Block der Speicherzellen in der Cachespeichereinheit eingeführt, der durch die Verzeichnis- Steuerschaltungen ausgewählt ist. Sodann wird das entsprechende bereitstehende Bit-Signal in dem Verzeichnis- Steuerregister auf Null gesetzt. In Abhängigkeit von den Forderungen der Zentraleinheit können die Datenwörter unmittelbar in die Befehlspufferschaltungen zum Zwecke der Abgabe an die Zentraleinheit eingeführt werden. Wenn die Datenforderung ein Lesevorsignal war, verbleiben die Daten in der Cachespeichereinheit solange, bis sie von der Zentraleinheit gebraucht werden.
Die Auswahlschaltung, mit deren Hilfe der Block der Speicherzellen bestimmt wird, in die aus dem Speicher abgeholte Daten abgespeichert werden sollten, ist in Fig. 4 dargestellt. Die betreffende Auswahlschaltung bildet einen Teil der Verzeichnis-Steuerschaltung der Cachespeichereinheit. Die verschiedenen Statuszeiger werden in dem Verzeichnis-Steuerregister 151 gespeichert. Der gegenwärtige Zeiger 151 D stellt eine Kombination von zwei Bits dar, die die Blockadressen (von vier Blöcken) in der zuletzt adressierten Reihenfolge und die darin gespeicherten Daten bezeichnen. Für jeden der vier Blöcke der 128 Speicherplätze ist eine Registerposition bereitgestellt, um das anstehende Übertragungsanzeigebiet 151 C zu speichern. Jeder der vier Blöcke der 128 Speicherplätze weist eine zugehörige Voll/Leer-Anzeigebitposition 151 B auf. Das Ausfallblockregister weist vier Positionen auf, um eine Anzeige in dem Fall zu liefern, daß die Benutzung eines der vier Blocks (einschließlich jeglicher der 128 Speicherplatzadressen des Blocks) fehlerhafte Daten erzeugt.
Wenn ein Inhaltsverzeichnis-Suchzyklus ausgelöst wird, dann aktiviert der die Speicherplätze bezeichnende Adressenteil die Speicherplatzadresse in dem Verzeichnis-Steuerregister 151. Für diesen Speicherplatz werden die letzten Zugriffs-Hinweisezeiger zu dem Zeigerregister 153 hin übetragen. Die die anstehende Übertragung betreffenden Zeiger und die Ausfallblocksignale werden in den ODER-Gliedern 154 miteinander verknüpft, und das Verknüpfungssignal wird an die Verfügbarkeitsschaltung 164 abgegeben. Die Ausfallblocksignale und die anstehenden Bit-Signale werden, falls vorhanden, in entsprechende Bitpositionen der Verfügbarkeitsschaltung eingeführt. Das Zeigerregister 153 überträgt zu der Verfügbarkeitsschaltung die Blockidentifizierung, die bei der unmittelbar vorangegangenen Einspeicherung von Daten in die Verfügbarkeitsschaltung benutzt worden ist. Der für die Ermittelung der Null höchster Wertigkeit vorgesehene Detektor 156 identifiziert die erste Null in der Schaltungsposition, die derjenigen Position folgt, welche durch den letzten Zugriffszeiger bezeichnet ist, wobei die von Null verschiedenen Positionen nicht verfügbare Blöcke bezeichnen. Die Versetzung dieser ersten Null-Position von der durch den Zeiger bezeichneten Position wird codiert an die Inkrementierungsschaltung 155 abgegeben. Die Position (und damit der Block), wie sie der Inkrementierungsschaltung 155 von dem Zeigerregister angegeben wird, wird um die von dem Codierer 157 aufgenommene Zahl erhöht, und die resultierende Position stellt die Blockadresse (0-3) dar, die über den Schalter 158 abgegeben wird, um das Verzeichnis für die Speicherung der Seitenadresse in dem ausgewählten Block freizugeben und um die Speichereinheit für die Einspeicherung der vier Wörter aus dem Hauptspeicher unter der ausgewählten Blockadresse freizugeben. Demgemäß nimmt die Auswahlanordnung eine sequentielle Auswahl nach dem oben erwähnten FIFO-Prinzip bezüglich des nächsten Blocks der Speicherzellen vor, die an einem adressierten Speicherplatz zu verwenden sind. Sollte der nächste sequentielle Block nicht verfügbar sein, so wird der in der Reihenfolge nächste verfügbare Block durch die Inkrementierungsschaltung bezeichnet.
Nach der Initialisierung wird die Blockauswahl in etwas anderer Weise festgelegt. Der Inhalt des Ausfallblockregisters 151 und die Voll/Leer- Anzeigesignale werden in ODER-Gliedern 160 miteinander verknüpft, und das Verknüpfungssignal wird an das Anfangs- Verfügbarkeitsregister 161 abgegeben. Wenn irgendeines der vier (miteinander verknüpften) Signale eine Null ist, dann wird der Schalter 158 freigegeben, um die durch den Codierer 163 bestimmte Blockadresse zu übertragen. Die durch den Codierer 163 bestimmte Adresse wird durch die Position der Null höchster Wertigkeit in dem Register 161 bestimmt. Diese Position identifiziert die Adresse des für die Datenspeicherung zu benutzenden Blocks; sie wird zu dem Zeigerteil 151 D für den letzten Zugriff des Verzeichnis- Steuerregisters der Cachespeichereinheit, zu dem Cachespeicher-Verzeichnis und zu der Cachespeichereinheit übertragen. Wie ersichtlich sein dürfte, wird nach der Initialisierung bei Fehlen eines Ausfallblocks der Weg über das Anfangs-Verfügbarkeitsregister 161 benutzt, bis sämtliche Voll/Leer-Bits gesetzt worden sind. Sodann wird der andere Weg zu dem Schalter 158 benutzt, um den nächsten Speicherblock für einen gegebenen Speicherplatz auszuwählen.
Aus Vorstehendem dürfte ersichtlich sein, daß die Anzahl der Blöcke pro Speicherplatz nicht auf vier und auch die Anzahl der Speicherplätze nicht auf 128 beschränkt zu sein braucht. Überdies ist auch keine Forderung dahingehend vorhanden, daß die Anzahl der Blöcke gleich der Anzahl der Wörter ist, die zwischen dem Cachespeicher und dem Hauptspeicher für die jeweilige Operation übertragen werden.

Claims (1)

  1. Cachespeicher mit Austauscheinheit in Rundschreibtechnik, dessen adressierbarer Datenspeicher (101) unter jeder Speicherplatzadresse n Speicherelementgruppen aufweist, mit einem Speicherregister (151 D) zum Vorhalten eines Zählwertes für jeden Speicherplatz, wobei dieser Zählwert die letzte Speicherelementgruppe angibt, in die ein Datenwort eingegeben wurde, und wobei dieser Zählwert jedesmal um Eins inkrementiert wird, wenn ein Datenwort in eine Speicherelementgruppe eingegeben wird, und wobei die wiederholte Inkrementierung um Eins bezüglich dieses Zählwertes eine zylklische Variation bewirkt bei der Darstellung der n Speicherelementgruppen, dadurch gekennzeichnet, daß
    • - ein Statusspeicher (151 B, 151 C, 159) zur Speicherung von Statusinformation für jede Speicherelementgruppe vorgesehen ist, wobei ein Teil dieser Statusinformation dazu dient anzuzeigen, daß die entsprechende Speicherelementgruppe für die Eingabe eines Datenwortes nicht zur Verfügung steht;
    • - ein Detektor (154, 164, 156) zum Empfang eines der Zählwerte und von Statusinformationssignalen vorgesehen ist, der in Erwiderung darauf die in sequentieller Folge nächste Speicherelementgruppe, die für die Eingabe eines Datenwortes zur Verfügung steht, identifiziert
    • - eine Steuerspeichereinheit (150) vorgesehen ist, die dann, wenn ein Datenwert in einen bestimmten Speicherplatz einzugeben ist, den Zählwert und alle diesem Speicherplatz zugehörigen Statusinformationssignale an den Detektor (154, 164, 156), weiterleitet;
    • - ein Codierer (157) zum Empfang von Signalen vorgesehen ist, welche die in der Sequenz nächste verfügbare Speicherelementgruppe, die vom Detektor ermittelt wurde, kennzeichnen, wobei dieser Codierer diese Signale in einen entsprechenden Inkrementierungswert umsetzt; und
    • - eine Inkrementierungsschaltung (155) zum Empfang des genannten Zählwertes und des entsprechenden Inkrementierungswerts vorgesehen ist, zur Inkrementierung des Zählwertes um den genannten Inkrementierungswert, so daß ein neuer Zählwert gebildet wird, der die nächste Speicherelementgruppe kennzeichnet, in die ein Datenwort einzugeben ist.
DE19782853165 1977-12-08 1978-12-08 Anordnung zur auswahl einer speicherelementgruppe aus einer vielzahl von speicherelementgruppen in einer cachespeichereinheit Granted DE2853165A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US85857577A 1977-12-08 1977-12-08

Publications (2)

Publication Number Publication Date
DE2853165A1 DE2853165A1 (de) 1979-06-13
DE2853165C2 true DE2853165C2 (de) 1989-09-21

Family

ID=25328622

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782853165 Granted DE2853165A1 (de) 1977-12-08 1978-12-08 Anordnung zur auswahl einer speicherelementgruppe aus einer vielzahl von speicherelementgruppen in einer cachespeichereinheit

Country Status (6)

Country Link
JP (1) JPS5489438A (de)
AU (1) AU523670B2 (de)
CA (1) CA1121515A (de)
DE (1) DE2853165A1 (de)
FR (1) FR2411465B1 (de)
GB (1) GB2009982B (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
JPS60181942A (ja) * 1984-02-29 1985-09-17 Fujitsu Ltd メモリ制御装置
DE19543193C1 (de) * 1995-11-20 1997-02-13 Daimler Benz Ag Vorbau für einen Personenkraftwagen mit einer Tragstruktur
WO2004046933A1 (ja) * 2002-11-20 2004-06-03 Fujitsu Limited メモリ制御装置およびキャッシュリプレース制御方法
US7673102B2 (en) 2006-05-17 2010-03-02 Qualcomm Incorporated Method and system for maximum residency replacement of cache memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE620922A (de) * 1961-08-08
GB1124017A (en) * 1964-12-17 1968-08-14 English Electric Computers Ltd Data storage apparatus
US3840862A (en) * 1973-09-27 1974-10-08 Honeywell Inf Systems Status indicator apparatus for tag directory in associative stores
JPS5090259A (de) * 1973-12-10 1975-07-19

Also Published As

Publication number Publication date
CA1121515A (en) 1982-04-06
AU4224578A (en) 1980-06-12
FR2411465B1 (fr) 1986-05-30
GB2009982B (en) 1982-03-24
AU523670B2 (en) 1982-08-12
DE2853165A1 (de) 1979-06-13
FR2411465A1 (fr) 1979-07-06
JPS5489438A (en) 1979-07-16
GB2009982A (en) 1979-06-20

Similar Documents

Publication Publication Date Title
DE2523414C3 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
DE2560206C2 (de) Speichersystem mit einem langsam arbeitenden Hauptspeicher großer Kapazität und mit zumindest einem schnell arbeitenden Pufferspeicher geringer Kapazität
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE2617408C3 (de) Speichermodul fur ein Datenverarbeitungsgerät mit Speicherhierarchie
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE1956604C3 (de) Datenverarbeitungsanlage
DE69534758T2 (de) Verfahren und System für Mehrfachübertragung
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE2610411C2 (de) Schaltungsanordnung zur Ermittlung derjenigen fehlerfreien Einheit aus einer Vielzahl von Einheiten einer Datenverarbeitungsanlage mit der geringsten Benutzungshäufigkeit
DE2130299A1 (de) Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen
DE2310631C3 (de) Speicherhierarchie für ein Datenverarbeitungssystem
DE2646163B2 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE2856680C2 (de)
DE2404146A1 (de) Digitales, hierarchisch in wenigstens drei hierarchie-stufen aufgebautes speichersystem
DE3045609C2 (de)
DE1524788C3 (de) Schaltungsanordnung zum Erkennen und zum automatischen Ersetzen von schadhaften Speicherstellen in Datenspeichern
DE2912073C2 (de)
DE2853165C2 (de)
EP0009625B1 (de) Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher
DE2854286A1 (de) Schaltungsanordnung mit einem befehlspuffer fuer eine cachespeichereinheit eines datenverarbeitungssystems
DE2355814C2 (de) Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung
DE3009317A1 (de) Hybrid-assoziativspeicher
DE69334046T2 (de) Cache-Speichervorrichtung

Legal Events

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

Ipc: G06F 12/08

8127 New person/name/address of the applicant

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

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