DE2854782C2 - Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher - Google Patents
Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem SchnellspeicherInfo
- Publication number
- DE2854782C2 DE2854782C2 DE2854782A DE2854782A DE2854782C2 DE 2854782 C2 DE2854782 C2 DE 2854782C2 DE 2854782 A DE2854782 A DE 2854782A DE 2854782 A DE2854782 A DE 2854782A DE 2854782 C2 DE2854782 C2 DE 2854782C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- register
- registers
- usage
- 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
- G06F12/125—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
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)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung betrifft ein Datenverarbeitungssystem
gemäß dem Oberbegriff des Patentanspruchs 1 und ein Verfahren zum Ersetzen eines Datenblocks nach dem
Oberbegriff des Patentanspruchs 3.
Bekannte Datenverarbeitungssysteine der vorangehend definierten Art bedienen sich bei der Auswahl von
zu ersetzenden Datenblöcken in einem ersten schnellen Speicher der relativen Verwendungsiieitpunkte dieser
Blöcke, d. h. ein für den Austausch auszuwählender
Block wird nach dem Kriterium »längere Zeit nicht
verwendet« ausgewählt Somit können im Idealfall Datenblöcke fortlaufend abgerufen werden, entsprechend der auf diese bezogenen Referenzfolge und, wenn
ein Ersatz notwendig wird, wird der Datenblock ausgetauscht, der die längste Zeit nicht mehr aufgerufen
wurde. Diesem Prinzip liegt die empirisch ermittelte Tatsache gründe, daß die erst kurz zuvor aufgerufenen
Datenblöcke wahrscheinlich in naher Zukunft wieder
to benötigt werden. Es wurde jedoch festgestellt, daß ein
aufwendig und somit teuer ist
is bekannten Datenverarbeitungssystem wird jeder der in
dem ersten schnellen Speicher gespeicherten Datenblöcke markiert, wenn er verwendet wird, und lediglich
unmarkierte Datenblöcke werden für den Ersatz ausgewählt Ein zusätzliches Kriterium für den Ersatz
liegt in der Aufzeichnung der in dem ersten schnellen
werden und, falls es nötig ist, wird ein nicht geänderter
vorhandenden Datenblöcke markiert sind (da sie verwendet wurden), erfolgt eine Löschung, d. h. die
Datenblocks werden wieder als unmarkiert angesehen und das Auswahlverfahren wird in der vorangehend
beschriebenen Weise weitergeführt
zumindest bei einigen Gelegenheiten ein erst sehr
kürzlich verwendeter Datenblock für den Ersatz
ausgewählt wird.
tungssystem aufzuzeigen, bei dem mit einfachen Mitteln ein Auswahlverfahren möglich wird, bei dem kurz zuvor
verwendete Datenblocks nicht ersetzt werden, und welches verhältnismäßig schnell arbeitet und kostengünstig ist
Diese Aufgabe wird gemäß dem Kennzeichen des Patentanspruchs 1 bzw. 3 gelöst. Weitere vorteilhafte
Merkmale sind in dem Unteranspruch 2 enthalten.
Im folgenden wird die Erfindung anhand eines Ausführungsbeispiels beschrieben, wobei Bezug auf die
F i g. 1 ein Gesamtblockschaltbild eines Datenverarbeitungssystems;
F i g. 2 eine schematische Darstellung eines Teils des
in F i g. 1 gezeigten Systems;
F i g. 3 ein Flußdiagramm zur Beschreibung der Operationsfolge des in Fig.2 gezeigten Teilsystems
und
Fig.4A und 4B detaillierte Darstellungen des in
F i g. 2 gezeigten Teilsystems.
In F i g. 1 ist ein Datenverarbeitungssystem dargestellt, das einen Rechner 12 und einen Hochgeschwindigkeitsspeicher 14 enthält. Der Speicher 14 ist mit dem
Rechner 12 verbunden und es werden Daten zwischen diesen beiden Vorrichtungen ausgetauscht Des weite
ren enthält das dargestellte Datenverarbeitungssystem
einen Speicher 16, dessen Zugriffsgeschwindigkeit verhältnismäßig niedrig und dessen Speicherkapazität
verhältnismäßig groß ist. In dem Speicher 16 werden Informationen gespeichert, die aus räumlichen Gründen
nicht in dem Speicher 14 untergebracht werden können. Für bestimmte von dem Rechner 12 zu lösende
Probleme werden jeweils die erforderlichen Daten von dem großen Speicher 16 zu dem Hochgeschwindigkeits-
speicher 14 übertragen. Bei manchen Informationsverarbeitungsaufgaben werden bestimmte Datenblöcke
regelmäßig benötigt Solche Datenblöcke werden deshalb von dem Speicher 16 in den .speicher 14
übertragen und verbleiben in diesem. Die Datenblöcke oder die »Seiten« werden als Einheit von dem
langsamen Speicher 16 zu den Hochgeschwindigkeitsspeicher bzw. Schnellspeicher 14 übertragen.
Es wurde festgestellt, daß erst kürzlich verwendete
Datenblocks, die in dem Rechner 12 benötigt wurden, in
naher Zukunft wahrscheinlich wieder benötigt, d.h. aufgerufen werden. Demgemäß enthalten die Übertragungsschaltung 18 und der assoziative Speicher 24
Lcgikschaltungen, mit denen in dem Schnellspeicher 14 befindliche, in der letzten Zeit nicht benötigte
Datenblöcke ausgewählt werden, wenn zusätzliche Informationen von dem Rechner 12 angefordert und
somit in den Schnellspeicher 14 eingegeben werden müssen.
Im folgenden wird die Arbeitsweise der Übertragungsschaltung 18 und des Assoziativspeichers 24 unter
Bezugnahme auf Fig.2 und Fig.3 sowie auf die
F i g. 4A und 4B und 4B im Detail beschrieben.
In Fig.2 ist der assoziative Speicher durch einen
Block 24 dargestellt, in dem Raum für sechzehn Adressen oder Informationsblöcken von in dem
Hochgeschwindigkeitsspeicher 14 von F i g. 1 gespeicherten Informationen vorhanden ist Der Assoziativspeicher 24 enthält in jeder der sechzehn Speicherstellen die Adresse von dem Speicher 16, von den jeweils in
dem Schnellspeicher 14 gespeicherten Informationen. Einem jeden Datenblock, auf den sich die Adresse im
Assoziativspeicher 24 bezieht, ist ein »A« Ein-Bit-Register 26 und ein Satz von »B« Ein-Bit-Register 28
zugeordnet Die Register 26 und 28 werden als »Verwendungsregister« bezeichnet und dienen zur
Markierung der von dem Rechner 12 aufgerufenen im Schnellspeicher 14 gespeicherten Informationen, d.h.
den in den Speicherplätzen 0 bis 15 des Assoziativspeichers 14 diesen Informationen bzw. Datenblöcken
zugeordneten Adressen.
Während des Betriebes werden die Verwendungsregister 26 und 28 in das »/4«-Register 26 und das
»ß«-Register 28 aufgeteilt, die abwechselnd aktiviert
weiden, d.h., daß der Schalter 30 eine der beiden
Spalten A oder B auswählt und daß in die ausgewählte
Spalte ein Verwendungsbit eingespeichert wird, und zwar in der Weise, daß der von dem Rechner
aufgerufene Datenblock, der in dem Schnellspeicher 14 abgespeichert ist, gekennzeichnet wird.
In Fig.2 hat der Schalter 30 die Spalte »B« des
Registers 28 ausgewählt Es wird darauf hingewiesen, daß in diesem Fall acht von sechzehn Einzelbits in dem
»>4«f-Register 26 gespeichert sind. In dem »ß«-Verwendungsregister 28 sind lediglich drei Markierungsbits
vorhanden. Diese befinden sich in den Registerstufen 0, 3 und 4. Es wird nun angenommen, daß der Rechner 12
in F i g. 1 eine Information aus dem Block 10 des Assoziativregisters 24 auswählt, die sich auf den im
Schnellspeicher 14 gespeicherten Datenblock bezieht Dadurch wird in dem »ß<r-Register 28 die »0« in eine
»1« geändert, wodurch eine Markierung des Aufrufes des Blocks 10 erreicht wird.
Falls der Rechner 12 Informationen anfordert, die nicht in dem Schnellspeicher 14 vorhanden sind, ist es
erforderlich, daß aus dem großen Speicher 16 ein Datenblock in den Schnellspcicher 14 übertragen wird.
Dadurch entsteht die Frage, welcher der sechzehn
Informationsblöcke im Schnellspeicher durch die neu
aufzunehmende Information ersetzt werden solL Für diese Entscheidung werden die Register 26 und 28
abgefragt, wobei die Speicherstellen 0—15 des Assoziativspeichers 24 getestet werden. Dies geschieht in der
Weise, daß eine Abfrage der Λ-S-Bitpaare nach 0-0 von
dem Inhaltsauswahlschaltkreis 32 durchgeführt wird. Der Auswahlkreis 32 stellt in dem hier beschriebenen
Beispiel fest, daß in den Stufen 5 der Verwendungsregi
ster 26 und 28 keine Markierungsbits vorhanden sind
und er teilt dies in Form eines Signals einem Dekodierer 34 über eine der sechzehn mit 36 bezeichneten
Leitungen mit Des weiteren werden über die den Registerstufen 9, 10, 11, 13 und 15 zugeordneten
Leitungen dem Dekodierer 34 die in diesen Stufen gespeicherten Benutzungs- bzw. Abrufsituationen mitgeteilt In diesen Stellen sind ebenfalls lediglich 0-0-Bits
gespeichert Der Dekodierer 34 erzeugt ein Vier-Bit-Adressensignal, das über die Leitungen 38 ausgegeben
und dem Assoziativspeicher 24 zugeführt wird. Dadurch wird dem Assoziativspeicher 24 angezeigt, an welche
Stelle die von dem Speicher 16 kommende Informationen eingegeben werden sollen. Der Dekodierer 34
entscheidet, daß die niedrigste Zahl der oben aufgeführ
ten, längere Zeit nicht benutzten Datenblöcke ersetzt
werden soll, das heißt in dem hier beschriebenen Fall, der dem Register 5 zugeordnete Datenblock, obwohl
alle der längere Zeit nicht aufgerufenen Register gleichermaßen für die Auswahl in Frage kommen.
(Register Nr. 5) des Assoziativspeichers 24 und ein
dem Verwendungsregister 28 drei Verwendungsbits gesetzt wurden, wonach zusätzlich ein viertes Verwendungsbit in der Stufe Nr. 5 gesetzt wurde. Werden nun
von dem Rechner 12 vier weitere Datenblocks aus dem Schnellspeicher 14 aufgerufen, so befinden sich nun im
ȧcf-Verwendungsregister 28 ebenfalls acht Markierungsbits. In diesem Falle wird durch den Schaltkreis 42
über die Leitung 44 ein Signal an die Erregungsschaltung 46 angelegt, wodurch der Schalter 30 von dem
»ß«-Verwendungsregister 28 auf das M«-Verwen
dungsregister 26 umschaltet Gleichzeitig wird ein
Zurücksetzsignal erzeugt, das schematisch durch die Teile 48 und 50 angedeutet ist, durch das die sechzehn
Registerstufen des Registers 26, das durch den Schalter 30 nun ausgewählt ist, gelöscht werden. Somit befinden
sich in den sechzehn Stufen des Registers 26 lediglich »O«-Bits.
Der vorangehend beschriebene Vorgang wiederholt sich nun solange, bis infolge von Datenblockabrufevorgängen aus dem Schnellspeicher 14 in dem Markie-
rungsregister 26 acht Markierungsbits gesetzt sind,
wonach in der Schaltung 42 dieser Zustand erkannt wird
und die Schaltung 46 den Schalter wieder auf das
W) dem Flußdiagramm in F i g. 3 gezeigt Über die Leitung
61 wird der Start eingeleitet und der erste Schritt ist durch den Block 62 angedeutet. In diesem erfolgt die
Löschung aller Anzeigebits durch einen Rechnerbefehl und «Jie Auswahl des Registers 28. Im nachfolgenden
fordert der Rechner 12 Daten an. In dem rhombusförmigen Block 64 wird deshalb die Frage gestellt: »Ist die
geforderte Adresse in der Tafel?«. Lautet die Antwort auf diese Frage »Nein«, muß im Block 65 eine neue
Eingabe erfolgen. Dies wird in einer Unterbrechungs-Service-Routine ausgeführt, bei der im wesentlichen ein
Datenblock von dem großen Speicher 16 in den kleineren Schnellspeicher 14 übertragen wird.
Die Blöcke 82 und 84 beziehen sich auf diese s Situation, bei der die Tafel durch einen neuen
Eingabevorgang geändert werden muß. Im Block 82 wird angezeigt, daß in den ersten beiden Stufen der
Register 26, 28 die Markierungsinformation »00« vorhanden ist, wodurch angezeigt wird, daß der diese
Stelle zugeordnete Informationsblock im Schnellspeicher längere Zeit nicht vei-wendet wurde. Im Block 84
erfolgt die Übertragung der Information von dem großen Speicher 16 in den ausgewählten Platz im
Schneilspeicher 14. is
Nun wird wieder Bezug auf den Schritt 64 genommen
unter der Annahme, daß die vorangehend gestellte Frage mit »Ja« beantwortet wurde. Dadurch wird
angezeigt, daß sich die vom Rechner angeforderten Daten in dem Schnellspeicher befinden. Der Block 68
bezieht sich auf das Setzen eines Markierungsbits in einer entsprechenden Stelle des ausgewählten Registers, die dem aufgerufenen Block zugeordnet ist, in
Abhängigkeit davon, ob das Register 26 oder 28 durch den Schalter 30 aktiviert ist Im Schritt 70 wird die Frage 2s
gestellt: »befinden sich nun acht Markierungsbits in dem ausgewählten Register?«. Aus F i g. 2 geht hervor, daß
mit Hilfe der Schaltungen 42,44,46,48 und 50 im Falle
einer »Ja«-Antwort eine Umschaltung des Schalters vorgenommen wurde. Dieser Vorgang ist durch die
Schritte 72 und 74 in dem Flußdiagramm angedeutet Die Leitungen 76, 78 und 80 zeigen an, daß zu dem
Schritt 64 zurückgegangen wird, wenn der Rechner 12 weitere Speicheradressen aufruft
In dem hier beschriebenen Beispiel, insbesondere nach den Fig. 1, 2 und 3, ist jedem der in dem
Schnellspeicher 14 gespeicherten Datenblöcken eine Stelle im Assoziativspeicher 24 und in den Registern 26
und 28 zugeordnet In der Praxis kann es jedoch auch der Fall sein, daß der Schnellspeicher mehr Datenblocks
speichert als Stellen in dem Assoziativspeicher 24 und in den Verwendungsregistern vorhanden ist In solchen
Fäüen kann mittels einer separaten Tafel mit Hilfe der Software eine Aufnahme aller in dem Schnellspeicher
befindlichen Datenblockadressen geschaffen werden. Falls aufgerufene Daten nicht in einem der Blöcke des
Assoziativspeichers 24 vorhanden sind, wird, bevor Daten in dem Schneilspeicher 14 gesetzt werden, die
separate, dem Schnellspeicher zugeordnete Tafel zuerst geprüft und, falls die angeforderten Daten vorhanden
sind, deren Adresse in den Assoziativspeicher 24 in der vorangehend beschriebenen Weise übernommen.
Im folgenden wird das detaillierte Schaltbild gemäß den F i g. 4A und 4B im einzelnen beschrieben. Die dort
verwendeten Bausteine bestehen aus Emitter-gekoppelten Logikelementen (ECL). Bei diesen Bausteinen muß
jeder aktive Schaltkreis mit einem Widerstand verbunden sein. Diese Widerstände werden in der Schaltung in
Form von kleinen rechteckigen Kästchen dargestellt, wobei aus Gründen der Übersichtlichkeit auf die
Verwendung von Bezugszeichen für die einzelnen Widerstände verzichtet wurde. Die meisten der hier
verwendeten Schaltungen wirken invertierend, was durch einen kleinen Kreis am Ausgang der verwendeten
Schaltungssymbole angedeutet ist. Einige wenige es
Schaltungssymbole weisen diesen Kreis nicht auf, was bedeutet daß in diesen keine Inversion stattfindet Die
Schaltungssyrnbole mit einem geraden Strich an der
linken Seite stellen »UND«-Glieder bzw. »NICHT UND«-Glieder im Falle der Inversion dar, während die
Symbole mit einer konkaven Begrenzung an der linken Seite »ODER«-Glieder darstellen.
Bei Emitter-gekoppelten Logikbausteinen bedeutet eine logische »1« einen niedrigen Spannungswert und
eine logische »0« einen hohen Spannungswert Diese Definition wird auch bei der nachfolgenden Beschreibung beibehalten. Einige der hier verwendeten Schaltkreise weisen normalerweise einen niedrigen Spannungswert (logische 1) auf und werden durch Anlegen
eines hohen Spannungswertes (logische 0) aktiviert Diese Eingänge sind mit einem Querstrich über der
Eingangsbezeichnung versehen. Ein »CLK«-Eingang
bedeutet somit eine logische 1 oder einen nach unten gehenden Taktimpuls, während ein »CLK« eine logische
0, d. h. einen nach oben gehenden Taktimpuls bedeutet. In der gleichen Weise bedeutet TRL eine logische l,d h.
einen niedrigen Spannungspegel (Übertragung) und die Umschaltung auf eine logische 0 erscheint bei der
Durchführung einer Übertragung.
Der in den F i g. 4A und 4B verwendete Ausdruck NC bedeutet daß ein so bezeichneter Anschluß nicht mit
Signalquellen verbunden ist Die Zahl » + 1« in den Zeichnungen nach einem Signal oder einem Befehl zeigt
an, daß dieses Signal oder dieser Befehl während dem ersten Taktzyklus erscheint während die nachfolgenden
Befehle nicht mit einer solchen Zahl versehen sind.
In den F i g. 4A und 4B bilden die Blöcke 26' und 26" das »A«-Ein-Bit-Register und die mit 28' und 28"
bezeichneten Blöcke das »Bw-Ein-Bit-Verwendungsregister. Diese vier Bausteine stehen kommerziell zur
Verfügung und werden als inhaltsadressierte Speicher bezeichnet (CA M)
Wenn eine erfolgreiche Anfrage bezüglich eines Blocks gestellt wird, dessen Adresse sich im Assoziativspeicher 24 befindet (dies wird als erfolgreiche
Übertragung bzw. STR erkannt), so wird einer der Anschlüsse CO bis C15 durch den Assoziativspeicher-Eingangsvergleichskreis erregt Die selektive Eingabe
der Verwendungsbits in das Λ-Register oder 5-Register
wird durch ein Flip-Flop 92 gesteuert, das in Fig.4A
unten gezeigt ist_und das, wie im nachfolgenden noch
erklärt wird, den W-Anschluß des Λ-Registers oder des
ß-Registers aktiviert Der Ausgang des Flip-Flop 92 ist mit PTR und PTR. Rechts außen in Fig.4B wird die
Erzeugung der »Takt A«- und »Takt Ar-Signale (CLKA und CLKB) gezeigt die den entsprechenden Eingängen
der Λ-Register 26' und 26" und der ß-Register 28' und
28" zugeführt werden. Dies geschieht mit Hilfe der UND-Glieder 94 und 96, wobei an zwei von deren
Eingängen die PTR oder F77?-Signale, das sind die
entgegengesetzten Signale des Flip-Flops 92, die Taktsignale und von dem NICHT-UND-Glied 99
kommenden Signalen angelegt werden. An einem Eingang des Gliedes 99 legt das Signal RSTl/2 and
weitere invertierte Signale an. Das Glied 99 erzeugt somit einen logischen 1-Ausgang, der als Befähigungstakt (EC) bezeichnet wird und den UND-Gliedern 94
und 96 zugeleitet wird, wenn einer der Eingänge des Gliedes 99 aktiviert wird (logische 0), so daß die
Erzeugung der CLKA- oder CLXB-Signale ermöglicht
wird. Diese Signale (CLKA und CLKB) werden dem Schreibeingang W der Register 26' und 26" und der
Register 28' und 28" zugeführt
Die zwei anderen Eingänge des Registers 28" (einer
von vier gleich aufgebauten Kreisen) sind die »SETÄR«r-Eingänge zu dem »^-Anschluß des Chips
und der »/?/HM«-Eingang zu dem «Aow-Anschluß des
Chips. Der Eingang zu dem /o-Anschluß bestimmt den Zustand, auf den das Register gesetzt wird und dient zu
der Setzung eines Bits im Register auf eine logische 1 für einen plötzlichen Aufruf (SETRR) oder es dient zur
Löschung aller Bits auf logische O-Zustände, wenn eine ungültige Anordnung IVD erscheint oder wenn die
Zurücksetzung gefordert wird (RESET \ 12 bzw. RSTΊ 12). Es wird darauf hingewiesen, daß das
NICHT-UND-Glied 93 in Fig.4B ein SET R R-Signa\
erzeugt, mit dem die Steuereingänge »ERFOLGREICHE ÜBERTRAGUNG«
(STR) »SCHAFFUNG EINES NEUEN EINGANGS« (CNE)una »LESEN UND
SETZEN RR+ 1« (RASRR+ 1) die Steuerung des Gliedes 93 vornehmen, wobei die Bedeutung der
Querstriche gemäß der folgenden Definition verwendet wurde. Zusätzlich werden die »R/WA« und »R/WB«-
Ausgänge in dem ODER-Glied 95 und in dem ODER-Glied 97 erzeugt.
Zur Vermeidung von Unstimmigkeiten wird darauf hingewiesen, daß jeder der vier Verwendungs- bzw.
Markierungsregisterchips 26', 26", 28' und 28" einen >Mo«-Eingang aufweist, an den die Signale »R/WA«
oder »R/W B« angelegt werden. Dies bedeutet im
einzelnen, daß jedes der B-Verwendungsregister einen Mo«-Anschluß aufweist. Wenn demnach Bezug genommen
wird auf die Information in Block 4 des Hochgeschwindigkeitsspeichers, erfolgt die Erregung
der Leitung C 4 und des y4-Registers wird auf eine logische 1 geschaltet und zwar entweder im Register 26'
oder 28' in Abhängigkeit von dem Zustand des Flip-Flops 92. Das Flip-Flop 92 bildet einen Teil der
Funktion, die durch den Schalter 30 in F i g. 2 schematisch angedeutet ist
Im Zusammenhang mit der Beschreibung der Fi g. 2
wurde bereits darauf hingewiesen, daß der Schalter 30 entweder das Register 26 oder das Register 28 auswählt
und daß eine Umschaltung jeweils dann auf das andere Register erfolgt, wenn die Hälfte, d.h. in dem hier
beschriebenen Beispiel acht, der Markierungsplätze auf den Zustand »1« gesetzt sind, wobei jeweils das
Register, das als nächstes ausgewählt wird, gelöscht wird Eine hiermit übereinstimmende Funktionsweise
wird in den Logikschaltkreisen der Fig.4A und 4B durch zwei programmierbare Lesespeicher (PROMS)
98 und 100 durchgeführt, die mit einem Addierer 102 zusammenarbeiten. Während einer Taktperiode unmittelbar
nach STR, CNE oder ÄAS ^-Instruktionen
werden die V-Ausgänge (CO-C15) von allen »A«oder
»B«- Registern (in Abhängigkeit vom Zustand des Flip-Hops 92) durch die programmierbaren Lesespeicher
98 und 100 gelesen und diese liefern an den Addierer 1G2 eine Anzahl Binärausgänge, durch die die
Bits dargestellt werden, die in den Verwendungsregistern 26' und 26" festgestellt wurden. Es wird
beispielsweise angenommen, daß die Positionen VO, Kl und Y2 in dem Register 26' markiert sind, so daß die
oberen drei Leitungen zu dem Lesespeicher 98 Impulse führen (logische 1-Informationen). Unter dieser Bedingung
ist der Ausgang des Lesespeichers 98 0011, wodurch die Dezimalzahl 3 dargestellt wird. Es wird
weiterhin angenommen, daß die fünf Registerpositionen YT. bis V6 in dem Register 26" Markierungsbits
enthalten. Demgemäß entstehen auf den Leitungen CIO—C14 am Eingang des Lesespeichers 100 Signale
und am Ausgang tritt die Information 0101 auf, wodurch
die Dezimalzahl 5 dargestellt wird. Der Addierer 102
zählt die Binärzahl 0011 des Lesespeichers 98 und die Binärzahl 0101 des Lesespeichers 100 zusammen,
wodurch die Binärzahl 1000 entsteht, durch die die Dezimalzahl 8 dargestellt wird. Am Ausgang 104 des
Addierers 102 entsteht ein Signal, das eine logische 1 darstellt und das dem UND-Glied 106 zugeführt wird.
Nach Ankunft eines Taktsignals von dem Flip-Flop 150 auf der Leitung 108 wird der Eingang des Flip-Flops 92
erregt, so daß das Flip-Flop 92 umschaltet. Dadurch erfolgt eine Umschaltung von den Registern 26' und 26"
ίο zu den Registern 28' und 28".
Ein NICHT-ODER-Glied 154 erzeugt ein CLKRR-Signal,
durch das eine logische 0 angezeigt wird und das jeweils bei der Addierung des /4-Registers oder des
B- Registers auftritt. Durch dieses Signal wird das Flip-Flop 150 zurückgesetzt, wodurch wiederum eine
Verzögerung der Umschaltung des Flip-Flops 92 und des Flip-Flops 116 bis zum Auftritt des nächsten
Taktzyklus erreicht wird. Dieser Taktzyklus ist der erste Taktzyklus, der nach Eingabe des letzten Markierungsbits
in das Λ-Register oder in das ß-Register erscheint.
Während dem ersten Zyklus nach Umschaltung des
Flip-Flops 92 erfolgt die Löschung des erneut ausgewählten Verwendungsregisters, in dem hier
beschriebenen Fall des »B«-Registers 28' und des Registers 28" auf 0 durch Setzen aller Eingangsleitungen
Y auf einen niedrigen Pegel oder auf logisch 0 und Anlegen eines Schreibimpulses R/W auf die Leitungen
112 und 114 der Register 28' und 28" und zur gleichen
Zeit sind die SETÄÄ-Eingänge zu den /o-Anschlüssen
der ß-Register 28' und 28" auf einem hohen Zustand, d. h. auf logisch 0. Diese /o-Anschlüsse der Register 26',
26", 28' und 28" stellen den Zustand, auf den das ausgewählte Register oder die ausgewählten Register
gesetzt werden. Durch Betätigen des Flip-Flops 116 werden alle Eingänge »Y« auf einen niedrigen Pegel
geschaltet, wodurch ein ÄS7"l/2-Signal erzeugt wird,
das einem der Eingänge des UND-Gliedes 117 zugeleitet wird. Der RST1/2-Ausgang des Flip-Flops
116 wird für einen Taktzyklus auf logisch 1 gesetzt und
zwar jedesmal, wenn das Flip-Flop 92 zwischen den Ausgängen P77?und PTR umschaltet Der Ausgang des
UND-Gliedes 117 ist mit »1NHDEC« bezeichnet und liefert Eingangssignale für die NICHT-UND-GIieder
119 und 121 mit dem logischen Pegel 0, so daß deren
Ausgänge auf den logischen Pegel 1 (niedriger Wert) geschaltet werden. Dadurch werden die ß-Register 28'
und 28" aktiviert und alle auf logisch 1 gesetzt
Wenn der Rechner 12 (Fig. 1) einen Informationsblock aufruft, der nicht in dem Schnellspeicher 14
vorhanden ist, so wird einer der längere Zeit nicht benötigten Informationsblocks für den Ersatz ausgewählt
Demgemäß wird das kleinstnummerierte Paar von Registern, bei denen beide A- und B-Bits den Wert ö
aufweisen, identifiziert Zur Vervollständigung dieser Funktion werden Nullen an den Eingangsleitungen 118,
120 plaziert und die Register 26' und 28', und 26" und 28" werden in den zugeordneten Modus eingefügt durch
Setzen der Eingänge 112, 114, 122 und 124 auf den »A>«-Anschluß der vier Chips bzw. Register alle auf
einen hohen oder 0-Zustand. Alle Eingänge mit beiden
Logik-O-Eingaben in den A-Register-Chips 26' und 26"
und ebenfalls in dem B-Register 28' und 28" bewirken
eine Umschaltung auf einen niedrigen Pegel auf der ^Leitung, die die beiden Register verbindet. Die
Codierer 126 und 128 fühlen die Eingangslehungen ab und bestimmen die Leitung mit der niedrigsten Zahl auf
der jeweils in den A- und B-Registern zwei Nullen vorhanden sind. Der Ausgang der Dekodierer 126 und
128 wird in einem Multiplexer 130 kombiniert und das
Ergebnis in Form eines vierziffrigen Binärcodes am Ausgang des Multiplexers 130 wird zur Identifizierung
des Speicherbereichs verwendet, in den die neue Information einzugegeben ist. Die NICHT-UND-Glieder
152 der Eingänge der Dekodierer 126 und 128 werden zur Erzeugung einer geeigneten Kondition für
die Dekodierer benötigt.
Die zwei Dekodierer 132 und 134 (sowie die anderen Schaltungen) empfangen den codierten Ausgang von
dem Multiplexer 130. Diese Information wird zur Identifizierung der entsprechenden V-Eingangsleitung
entweder des A- oder des ß-Registers verwendet (in Abhängigkeit von dem Zustand des Flip-Flops 92) und
setzt ein Verwendungsbil in den entsprechende Steile des Registers. Die Dekocierer 132 und 134 legen
logische Signale an alle NICHT-UND-Glieder 119 und
121 an mit Ausnahme des NICHT-UND-Gliedes, das
einer der ausgewählten Leitungen CO bis C15 zugeordnet ist. Mit einer logischen 1 von dem
UND-Glied 117 weist lediglich das ausgewählte NICHT-UND-Glied eine 0 und eine 1 am Eingang aus
und lediglich die ausgewählte Leitung empfängt eine logische 1 und wird auf einen niedrigen Pegel gebracht,
so daß ein Verwendungsbit in das entsprechende Register 26', 26", 28' oder 28" eingebracht werden kann.
Der IVD (Ungültigkeits-) Eingang wird zur Zurücksetzung
der Häifte der Register verwendet, wenn das System eingeschaltet oder in Betrieb genommen wird.
Dies geschieht in der gleichen Weise wie zuvor im Zusammenhang mit dem RST 1 /2-Operationsvorgang
beschrieben wurde. Der IVD-Eingang zu dem UND-
Glicd 117 und dem NICHT-UND-Glied 93 mit dem
RST1/2- Eingang können im einzelnen festgelegt
werden.
Auf das Verhältnis des NICHT-UND-Güedes 93 wird
verwiesen, das das S£T/?/?-Signal erzeugt, welches an
den Anschluß k der A- und B-Verwendungsregister 26',
26", 28' und 28" angelegt wird. Es wird nochmals in Erinnerung gerufen, daß die /o-Anschlüsse den Zustand
bestimmen, auf den die einzelnen Register gesetzt werden, werin die anderen Leitungen aktiviert werden.
Mit zwei Direkteingängen (1) CNEund(2) STRwWd das SE7"/?/?-Signal eine logische 1, wenn diese Funktion
erfüllt wird. Für die Rücksetzbedingung SETRR dient eine logische 0.
Während der Übertragungsperiode, vor einer erfolgreichen Übertragung, sind weder der Takt A noch der
Takt B oder die S£T/?/?-Signate aktiviert, so daß kein
Eingang oder Wechsel in den A- oder B- Registern 26', 26", 28' oder 28" erscheint. Zwischendurch wird die
Übertragungsperiode, während der eine Übertragung versucht wird, erfolgt eine Markierung durch »ÜBER-TRAGUNG«
oder »ÜBERTRAGUNG« als Vergleich mit dem nachfolgenden Auftreten einer »ERFOLGREICHEN
ÜBERTRAGUNG« (STR), die im vorangehenden beschrieben wurde. Diese 77?Z.-Bedingung bewirkt,
daß die Ausgänge der NICHT-UND-Glieder 119 und
J2J logische 1-Werte annehmen, so daß die Dekodierer
132 und 134 die Leitungen CO bis C15 nicht erregen,
wenn eine Adressenübertragung versucht wird.
In der vorangehenden Beschreibung wurde eine spezielle, besonders geeignete Verwendungsform der
Erfindung beschrieben. Die tatsächliche Taktierung der verschiedenen Logikelementen wird an die allgemeinen
Zeitbedingungen der Datenverarbeitungssysteme angepaßt, die verwendet werden. Die Zeitgabemuster für
solche Zwecke und Vorrichtungen sind allgemein bekannt. Es versteht sich jedoch, daß die im
vorangehenden beschriebene spezielle Ausführungsform das der Erfindung zugrunde liegende allgemeine
Prinzip nicht einengt. Es können beispielsweise andere Logiksysteme verwendet werden und andere Arten von
Logikelementen anstelle der beschriebenen UND-Glieder, ODER-Glieder und Flip-Flops. Des weiteren ist die
Anwendung des der Erfindung zugrunde liegenden Prinzips nicht auf drei oder mehrere Register
beschränkt. Anstelle dieser können auch Schieberegister mit zwei, drei oder mehr Bits in Längsverschiebung
anstelle der Schieberegisterpaare A und B verwendet werden, die den in dem Schnellspeicher vorhandenen
Datenblöcken zugeordnet sind, wobei jeweils eine Verschiebung erfolgt, wenn die Schieberegistereingänge
mit einem bestimmten Bruchteil von Markierungsbits gefüllt sind. Weiterhin können unterschiedliche Zählwertbegrenzungen
in den einzelnen Registern verwendet werden.
Hierzu 4 Blatt Zeichnungen
Claims (3)
1. Datenverarbeitungssystem mit einem Schnellzugriffsspeicher mit kleiner Kapazität und einem
langsamen Speicher mit großer Kapazität, sowie mit einer Übertragungsvorrichtung zur Übertragung
von Datenblöcken zwischen dem langsamen Speicher und dem Schnellzugriffsspeicher, und mit einer
Übertragungssteuervorrichtung, durch die bei der Anforderung von Daten, die sich nicht in dem
Schnellzugriffsspeicher befinden, ein ausgewählter Datenblock in dem Schnellzugriffsspeicher ersetzt
wird, dadurch gekennzeichnet, daß die
Übertragungssteuervorrichtung aufweist: zumindest zwei Gruppen von Benutzungsregistern (26, 28),
wobei einem entsprechenden Beroutzungsregister in jeder Gruppe (26, 28) einer Position eines Datenblockes in dem Schnellzugriffsspeicher (14) zugeordnet ist, eine Markierungsvorrichtung zum Markieren
der Benutzungsregister in einer ausgewählten Gruppe (z. B. 26) während des Zugriffs zu zugeordneten Datenblöcken in dem Schnellzugriffsspeicher
(14) bis ein vorbestimmter Teil der Benutzungsregister in der ausgewählten Gruppe (z. B. 26) markiert
worden ist, wonach Bermtzungs register in einer
anderen ausgewählten Gruppe (sl B. 28) markiert werden, und eine Löschvorrichtung zum Löschen
zuvor markierter Benutzungsregister von jeder der Gruppen (26,28) abhängig von deren Auswahl durch
die Markiervorrichtung, wobei die Übertragungssteuervorrichtung einen Datenblock in dem Schnellzugriffsspeicher (14) zum Austausch auswählt, dem
die geringste Anzahl von markierten Benutzungsregistern zugeordnet sind.
2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, daß die ausgewählte
Gruppe ein Halb beträgt
3. Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher mit kleiner Kapazität durch
einen aus einem langsamen Speiicher mit großer Kapazität angeforderten Datenblocks mit Hilfe
eines Markierungsspeichers, in dem jeweils beim Aufruf eines im Schnellspeicher befindlichen Datenblocks eine diesem zugeordnete Markierung gesetzt
wird und nur nicht markierte Datenblocks ersetzt werden, dadurch gekennzeichnet, daß mindestens
zwei vornehmlich gleiche Markierspeicher (26, 28) vorgesehen sind, die abwechselnd gesetzt werden,
daß beim Erreichen einer jeweils vorbestimmten Anzahl von Markierungen in einem Markierungsspeicher auf den nächsten unter Löschung darin
enthaltenen Markierungen umgeschaltet wird und daß die Summe der Anzahlen von Markierungen
kleiner oder gleich der Anzahl der im Schnellspeicher (14) speicherbaren Datenblöcke ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/863,637 US4229789A (en) | 1977-12-22 | 1977-12-22 | System for transferring data between high speed and low speed memories |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2854782A1 DE2854782A1 (de) | 1979-06-28 |
DE2854782C2 true DE2854782C2 (de) | 1982-06-09 |
Family
ID=25341457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2854782A Expired DE2854782C2 (de) | 1977-12-22 | 1978-12-19 | Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher |
Country Status (5)
Country | Link |
---|---|
US (1) | US4229789A (de) |
JP (1) | JPS5491153A (de) |
DE (1) | DE2854782C2 (de) |
FR (1) | FR2412889B1 (de) |
GB (1) | GB2011135B (de) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1601955A (en) * | 1977-10-21 | 1981-11-04 | Marconi Co Ltd | Data processing systems |
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 |
EP0019358B1 (de) * | 1979-05-09 | 1984-07-11 | International Computers Limited | Hierarchisches Datenspeichersystem |
DE2935135C2 (de) * | 1979-08-30 | 1983-01-20 | Siemens AG, 1000 Berlin und 8000 München | Schaltungsanordnung zum Verarbeiten von Daten in einer aus Zentralprozessor, Arbeitsspeicher und dazwischen angeordnetem Pufferspeicher bestehenden Datenverarbeitungsanlage |
US4481570A (en) * | 1981-08-07 | 1984-11-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Automatic multi-banking of memory for microprocessors |
US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
US4933835A (en) * | 1985-02-22 | 1990-06-12 | Intergraph Corporation | Apparatus for maintaining consistency of a cache memory with a primary memory |
US4860192A (en) * | 1985-02-22 | 1989-08-22 | Intergraph Corporation | Quadword boundary cache system |
US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
US5255384A (en) * | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
US4928239A (en) * | 1986-06-27 | 1990-05-22 | Hewlett-Packard Company | Cache memory with variable fetch and replacement schemes |
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
US5287485A (en) * | 1988-12-22 | 1994-02-15 | Digital Equipment Corporation | Digital processing system including plural memory devices and data transfer circuitry |
US5467460A (en) * | 1990-02-14 | 1995-11-14 | Intel Corporation | M&A for minimizing data transfer to main memory from a writeback cache during a cache miss |
US5159678A (en) * | 1990-06-11 | 1992-10-27 | Supercomputer Systems Limited Partnership | Method for efficient non-virtual main memory management |
JPH06175914A (ja) * | 1992-09-21 | 1994-06-24 | Eastman Kodak Co | メモリ管理装置 |
US6324411B1 (en) * | 1997-05-20 | 2001-11-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Background software loading in cellular telecommunication systems |
US6963960B2 (en) * | 2003-03-25 | 2005-11-08 | Microsoft Corporation | System and method for kernel mode memory management having movable kernel objects |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB979632A (en) * | 1960-04-20 | 1965-01-06 | Nat Res Dev | Improvements in or relating to electronic digital computing machines |
BE629069A (de) * | 1962-03-05 | |||
US3427592A (en) * | 1964-11-12 | 1969-02-11 | Ibm | Data processing system |
GB1124017A (en) * | 1964-12-17 | 1968-08-14 | English Electric Computers Ltd | Data storage apparatus |
GB1196752A (en) * | 1967-05-04 | 1970-07-01 | Int Computers Ltd | Improvements relating to Data Handling Arrangements. |
US3573750A (en) * | 1968-03-29 | 1971-04-06 | Nippon Electric Co | High-speed memory system |
US3541529A (en) * | 1969-09-22 | 1970-11-17 | Ibm | Replacement system |
FR116049A (de) * | 1975-03-20 | |||
GB1548401A (en) * | 1975-10-08 | 1979-07-11 | Plessey Co Ltd | Data processing memory space allocation and deallocation arrangements |
US4008460A (en) * | 1975-12-24 | 1977-02-15 | International Business Machines Corporation | Circuit for implementing a modified LRU replacement algorithm for a cache |
-
1977
- 1977-12-22 US US05/863,637 patent/US4229789A/en not_active Expired - Lifetime
-
1978
- 1978-12-05 GB GB7847177A patent/GB2011135B/en not_active Expired
- 1978-12-19 DE DE2854782A patent/DE2854782C2/de not_active Expired
- 1978-12-21 JP JP15697278A patent/JPS5491153A/ja active Granted
- 1978-12-22 FR FR7836089A patent/FR2412889B1/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
JPS5491153A (en) | 1979-07-19 |
FR2412889B1 (fr) | 1985-10-18 |
DE2854782A1 (de) | 1979-06-28 |
GB2011135B (en) | 1982-03-17 |
FR2412889A1 (fr) | 1979-07-20 |
GB2011135A (en) | 1979-07-04 |
US4229789A (en) | 1980-10-21 |
JPS6142303B2 (de) | 1986-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2854782C2 (de) | Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher | |
DE2819571C2 (de) | ||
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE1146290B (de) | Elektronisches Datenverarbeitungssystem | |
DE2550339A1 (de) | Pufferspeicher mit sehr kurzer zykluszeit zwischen mehreren daten anfordernden einheiten und einem hauptspeicher mit ziemlich langer zykluszeit | |
DE2457612A1 (de) | Mikroprogrammier-steuersystem | |
DE1178623B (de) | Programmgesteuerte datenverarbeitende Maschine | |
DE2725396C3 (de) | ||
DE3148099C2 (de) | Anordnung zum Erkennen einer Digitalfolge | |
DE3716752C2 (de) | ||
DE2926322A1 (de) | Speicher-subsystem | |
DE69109703T2 (de) | Sequentielle Endlichautomatenschaltung sowie integrierte Schaltung mit einer derartigen Schaltung. | |
DE2506671C3 (de) | Binärdaten-Handhabungsnetzwerk | |
DE1191145B (de) | Elektronische Zifferrechenmaschine | |
DE1171650B (de) | Maschine zur serienmaessigen Verarbeitung von Daten in binaerer Zeichenverschluesselung | |
DE1499191B2 (de) | Elektronische einrichtung fuer eine datenverarbeitungsanlage | |
DE2403669C3 (de) | SpezialComputer | |
DE2459476C3 (de) | ||
DE2404887C2 (de) | Schaltungsanordnung für den Informationsaustausch mit einem Rechner | |
DE2459476A1 (de) | Schaltungsanordnung fuer nichtzyklische datenpermutationen | |
DE2610428A1 (de) | Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher | |
DE1276375B (de) | Speichereinrichtung | |
DE3016738C2 (de) | Verfahren zur Übertragung eines Bitmusterfeldes in einen Speicher und Schaltungsanordnung zur Ausübung des Verfahrens | |
DE2727188A1 (de) | Anordnung zum adressieren eines speichers | |
DE2150292C2 (de) | Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: NCR INTERNATIONAL INC., DAYTON, OHIO, US |
|
8328 | Change in the person/name/address of the agent |
Free format text: KAHLER, K., DIPL.-ING., 8948 MINDELHEIM KAECK, J., DIPL.-ING. DIPL.-WIRTSCH.-ING., 8910 LANDSBERG FIENER, J., PAT.-ANWAELTE, 8948 MINDELHEIM |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: AT&T GLOBAL INFORMATION SOLUTIONS INTERNATIONAL IN |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: NCR INTERNATIONAL, INC. (N.D.GES.D.STAATES DELAWAR |
|
8339 | Ceased/non-payment of the annual fee |