DE2854782C2 - Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher - Google Patents

Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher

Info

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
Application number
DE2854782A
Other languages
English (en)
Other versions
DE2854782A1 (de
Inventor
Barry Steven Fairfield Conn. Manis
Douglas James Stanford Calif. Morgan
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.)
NCR International Inc
Original Assignee
NCR Corp
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 NCR Corp filed Critical NCR Corp
Publication of DE2854782A1 publication Critical patent/DE2854782A1/de
Application granted granted Critical
Publication of DE2854782C2 publication Critical patent/DE2854782C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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
    • G06F12/125Replacement 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
System, in dem eine vollständige und rigorose Verwendung dieser Ersatzkriterien Anwendung Finden,
aufwendig und somit teuer ist
In einem weiteren aus der US-Patentschrift 35 41 529
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
Speicher gespeicherten Datenblöcken, die verändert
werden und, falls es nötig ist, wird ein nicht geänderter
Block für dun Ersatz ausgewählt Wenn alle in dem ersten schnellen Speicher
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
Diese bekannte Art weist den Nachteil auf, daß
zumindest bei einigen Gelegenheiten ein erst sehr kürzlich verwendeter Datenblock für den Ersatz ausgewählt wird.
Es ist Aufgabe der Erfindung, ein Datenverarbei-
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
Zeichnungen genommen wird. In diesen zeigt
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.
Zusätzlich erfolgt eine Eingabe in das fünfte Register
(Register Nr. 5) des Assoziativspeichers 24 und ein
Verwendungsbit wird im »ßcr-Register 28 in der Position bzw. Stufe 5 gesetzt Zunächst wurde darauf hingewiesen, daß in F i g. 2 in
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
Register 28 umschaltet Die vorangehend beschriebene Arbeitsweise ist in
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+ (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 » 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)

Patentansprüche:
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.
DE2854782A 1977-12-22 1978-12-19 Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher Expired DE2854782C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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