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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
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)
- 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.
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)
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 |
JP3940148B2 (ja) * | 2002-11-20 | 2007-07-04 | 富士通株式会社 | メモリ制御装置およびキャッシュリプレース制御方法 |
US7673102B2 (en) | 2006-05-17 | 2010-03-02 | Qualcomm Incorporated | Method and system for maximum residency replacement of cache memory |
Family Cites Families (4)
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 |
-
1978
- 1978-12-06 AU AU42245/78A patent/AU523670B2/en not_active Expired
- 1978-12-06 CA CA000317477A patent/CA1121515A/en not_active Expired
- 1978-12-07 FR FR7834550A patent/FR2411465B1/fr not_active Expired
- 1978-12-07 GB GB7847553A patent/GB2009982B/en not_active Expired
- 1978-12-08 DE DE19782853165 patent/DE2853165A1/de active Granted
- 1978-12-08 JP JP15188878A patent/JPS5489438A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2009982B (en) | 1982-03-24 |
CA1121515A (en) | 1982-04-06 |
AU523670B2 (en) | 1982-08-12 |
AU4224578A (en) | 1980-06-12 |
DE2853165A1 (de) | 1979-06-13 |
GB2009982A (en) | 1979-06-20 |
FR2411465A1 (fr) | 1979-07-06 |
JPS5489438A (en) | 1979-07-16 |
FR2411465B1 (fr) | 1986-05-30 |
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 | |
DE1956604C3 (de) | Datenverarbeitungsanlage | |
DE69534758T2 (de) | Verfahren und System für Mehrfachübertragung | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
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 | |
DE2130299A1 (de) | Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen | |
DE2310631C3 (de) | Speicherhierarchie für ein Datenverarbeitungssystem | |
DE3011552A1 (de) | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer | |
DE2646163B2 (de) | Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers | |
DE2646162B2 (de) | Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers | |
DE2404146A1 (de) | Digitales, hierarchisch in wenigstens drei hierarchie-stufen aufgebautes speichersystem | |
DE2856680A1 (de) | Befehlspuffer fuer ein datenverarbeitungssystem | |
DE3045609C2 (de) | ||
DE1524788C3 (de) | Schaltungsanordnung zum Erkennen und zum automatischen Ersetzen von schadhaften Speicherstellen in Datenspeichern | |
DE2912073C2 (de) | ||
DE2221442A1 (de) | Assoziativspeicher | |
DE2853165C2 (de) | ||
EP0009625B1 (de) | Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher | |
DE3851796T2 (de) | Einrichtung zur Hochgeschwindigkeitsentscheidung der Verschachtelungsebene. | |
DE2854286A1 (de) | Schaltungsanordnung mit einem befehlspuffer fuer eine cachespeichereinheit eines datenverarbeitungssystems | |
DE3009317A1 (de) | Hybrid-assoziativspeicher |
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 |