DE2436932A1 - Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher - Google Patents

Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher

Info

Publication number
DE2436932A1
DE2436932A1 DE2436932A DE2436932A DE2436932A1 DE 2436932 A1 DE2436932 A1 DE 2436932A1 DE 2436932 A DE2436932 A DE 2436932A DE 2436932 A DE2436932 A DE 2436932A DE 2436932 A1 DE2436932 A1 DE 2436932A1
Authority
DE
Germany
Prior art keywords
stack
memory
page
register
line
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.)
Pending
Application number
DE2436932A
Other languages
English (en)
Inventor
Laszlo Antal Belady
Frank Pantaleone Palermo
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2436932A1 publication Critical patent/DE2436932A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms

Description

Böblingen, den 22, Juli 1974 km/bs-fs
.International Business machines Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: YO 972 094
Anordnung zur Messung der Effektivität einer Datenverarbeitungsanlage mit virtuellem Speicher
jJie Erfindung betrifft eine Anordnung zur Messung der Effektivität einer Datenverarbeitungsanlage bei der Ausführung von Seitenaustauschoperationen in einem virtuellen Speichersystem, das einen Primärspeicher mit unterschiedlich großer Seitenaufnahmekapazität und einen Sekundärspeicher mit einer größeren Seitenauf nahmekapazität aufweist. .
Ein virtuelles Speichersystem umfaßt einen schnellen Hauptspeicher und einen größeren, relativ langsameren Sekundärspeicher. Es werden virtuelle Adressen verwendet, deren Adressierungsbereich über die Grenzen des Hauptspeichers hinausgeht. Durch entsprechende Zuordnungen zwischen diesen virtuellen Adressen und den echten Adressen im Primärspeicher und im Sekundärspeicher wird sichergestellt, daß die im Programm durch ihre virtuellen Adressen spezifizierten Daten im Speicher gefunden und für einen Zugriff im Primärspeicher verfügbar gemacht werden können. Um den Datenaustausch zwischen dem Primärspeicher und dem Sekundärspeicher effektiv zu gestalten, werden die Daten zu sogenannten Seiten zusammengefaßt: Übertragungen zwischen dem Primärspeicher und dem Sekundärspeicher erfolgen jeweils seitenweise. ■
509807/107t
Mit der Einführung von Datenverarbeitungsanlagen mit virtuellen Speichersystemen wurden Austausch-Algorithmen entwickelt, mit deren Hilfe während des Betriebes der Datenverarbeitungsanlage bestimmt wird, welche Seite jeweils aus dem Primärspeicher zu entfernen und in den Sekundärspeicher zu übertragen ist, wenn im Hauptspeicher für die vom Programm benötigten Daten kein Platz mehr vorhanden ist. Solche Austausch-Algorithmen benutzen verschiedene Kriterien zur Bestimmung der zum Sekundärspeicher zurückzubringenden Seite. So wird beispielsweise die Regel "zuerst herein-zuerst heraus" (B1IPO) oder die Kegel " am längsten unbenutzt" (LRU) verwendet. Der Operationszustand der Datenverarbeitungsanlage, bei dem eine benötigte Seite nicht im Primärspeicher enthalten ist und demzufolge vom Sekundärspeicher geholt werden muß, wird im einschlägigen Sprachgebrauch und auch in der nachfolgenden Beschreibung als "Seitenausnahme", "Fehlseite" oder "Seitenaustauschzustand" bezeichnet.
Schon bald nach Einführung von Datenverarbeitungsanlagen mit virtuellem Speichersystem ergab sich die Notwendigkeit, die Effektivität der verwendeten Austausch-Algorithmen zu messen, d. h. für ein gegebenes Verarbeitungsprogramm, das eine bestimmte Reihenfolge von Seitenaufruf operationen beinhaltet, die i<lindestzahl der notwendigen Seitenaufrufoperationen (Fehlseiten) kennenzulernen. Die Kenntnis dieser Mindestzahl erlaubt einen Vergleich mit der Anzahl der während des Programmlaufes tatsächlich ausgeführten Seitenaufrufoperationen (Fehlseiten), so daß gegebenenfalls die Effektivität der Datenverarbeitungsanlage durch Vergrößerung des Primärspeichers oder durch andere Konfigurationsänderungen gezielt verbessert werden kann.
Die Mindestzahl von Fehlseiten dividiert durch die Anzahl von durch einen bestimmten Austausch-Algorithmus erzeugten Fehlseiten wird als Wirkungsgrad dieses speziellen Algorithmus definiert. Die für existierende Austausch-Algorithmen gemessenen
509807/1071
YO 972 094
Wirkungsgrade liegen im Durchschnitt bei 0,4, wobei Schwankungen zwischen 0,15 und 1,0 zu erwarten sind.
Um die Mindestzahl von Fehlseiten zu bestimmen, wurden der MIN-Algorithmus und der OPT-Algorithmus entwickelt. Der'MIN-Algorithmus ist im Artikel "A Study of Replacement Algorithm^·, for a Virtual Storage Computer " von L. A. Belady, IBM Systems Journal, Vol. 5, Uo. 2, Juni 19.66, Seiten 78 bis 101, beschrieben. Dieser Algorithmus ermöglicht die zusammenhängende Verarbeitung einer Sequenz von Seitenaufrufen und berechnet bei einer gegebenen Speichergröße die Mindest-Fehlseitenzahl, indem er rückwirkend die Speicherzustände der Datenverarbeitungsanlage und die Ausführung der Übertragungen zwischen dem Primärspeieher und dem Sekundärspeicher mit der_ notwendigen Raum-Zeit^Aufgliederung untersucht. Der Nachteil des MIN-Algorithmus besteht darin, daß er die Ermittlung der Mindest.r-Fehlseitenzahl für eine gegebene Aufrufreihe in einem Durchlauf jeweils nur für eine einzige Speichergröße gestattet.
Der OPT-Algorithmus vermeidet diesen Nachteil. Dieser Algorithmus ist in dem Artikel "Evaluation Techniques for Storage Hierarchies" von R. L. Mattson, J. Gecsei, D. R. Lutz und I. L. Traiger in IBM Systems Journal, Vol. 9, No. 2, Juni 1970, Seiten 78 bis 116, beschrieben. Der .OPT-Aigorithmus berechnet die Mindestzahl von Fehlseiten für eine gegebene Aufrufreihe über einen gewünschten Bereich von Speichergrößen im'wesentlichen gleichzeitig. Der Nachteil dieses Algorithmus besteht jedoch darin, daß er eine wiederholte Vorausschau über das Programm erfordert, aus dem die zuverarbeitende Aufrufreihe stammt. Es sind somit mehrere Durchläufe zur Sichtung der von diesem Programm veranlaßten Speicheraufruf- und Übertragungsoperationen notwendig. In einem ersten Durchgang wird eine sogenannte Distanzreihe nach dem Prinzip "am längsten unbenutzt" gebildet. Diese Distanzreihe benutzt der OPT-Algorithmus in einem zweiten Durchlauf zur Berechnung einer Wertefolge, welche für die tatsächlich erfolg-
50 9807/1071
Yu 972 094
ten Aufrufe die Mindestkapazität des Primärspeichers bei Vermeidung unnötiger Fehlseitensituationen angibt. Das Resultat dieser Operationen dient als Maß für die Effektivität der Datenverarbeitungsanlage unter Zugrundelegung der verschiedenen möglichen PrimärSpeicherkapazitäten.
Die MIN- und OPT-Algorithmen sind jeweils für bestimmte Anwendungen geeignet. So ist der MIN-Algorithmus anwendbar, wenn nur eine Speichergröße von Interesse ist. Er wird deshalb häufig in KompilierProgrammen für die RegisterZuordnung verwendet. Der ÜPT-Algorithmus erfordert die Speicherung größerer Datenmengen; er ist aber insofern wirkungsvoll, als er Informationen über das gesamte Speicherraum- und Zeitverhalten der Datenverarbeitungsanlage bei der Verarbeitung eines gegebenen Programms liefert. Daher wird der OPT-Algorithmus vorwiegend zur Auswertung von Speicherhierarchie-Konfigurationen verwendet, wie sie auch die virtuellen Speichersysteme darstellen.
Weder der MIN-Algorithmus noch der OPT-Algorithmus kann jedoch im on-line-Betrieb benutzt werden. Sie sind daher nicht geeignet, einen direkten Einfluß auf den zu bewertenden Austausch-Algorithmus auszuüben, sondern sie können nur nachträglich und indirekt Angaben über die Effektivität der Datenverarbeitungsanlage erbringen, die unter Benutzung eines bestimmten Austausch-Algorithmus ein gebenes Programm verarbeitet.
Es ist auch bereits ein Verfahren zur Messung der Effektivität einer Datenverarbeitungsanlage mit virtueller Adressierung bekannt geworden, das sich für den on-line-Betrieb eignet(DT-OS 2 047 062). Dieses Verfahren sieht eine Zählung der Austauschintervalle sowie eine Speicherung von Tabellen vor, die eine Beziehung der aufgerufenen Seiten zu den Austauschintervallen herstellen. Desweiteren werden entsprechende Tabellen für die angeforderten Seiten und für die Zahl der Austauschintervalle gebildet, die nach einem optimalen Austausch-Algorithmus notwendig gewesen wären. Aus
509807/ 1071 YO 972 094
der Differenz zwischen der Zahl der tatsächlich ausgeführten Austauschintervalle und der Zahl der nach dem optimalen Austausch-Algorithmus notwendigen Austauschintervalle werden Zählwerte für die unnötigen Blockaustauschoperationen gebildet, die als Maß für die Effektivität der Datenverarbeitungsanlage bei der Ausführung eines Programms dienen. Dieses Verfahren erfordert jedoch ebenfalls einen erheblichen Speicheraufwand zur Bildung der verschiedenen Tabellen und Zählstände.
Aufgabe vorliegender Erfindung ist es, eine Anordnung zur Effektivitätsmessung für Datenverarbeitungsanlagen mit virtuellem Speichersystem anzugeben, welche die Nachteile der bekannten Algorithmen und Verfahren vermeidet und eine einfachere Arbeitsweise als diese gestattet, im on-line-Betrieb ohne Vorausschaudurchläufe einsetzbar ist, die Speicherung geringerer Datenmengen erfordert sowie eine parallele Aussage für unterschiedliche Primärspeichergrößen erlaubt. Gemäß der Erfindung wird diese Aufgabe bei einer Anordnung der eingangs erläuternden Art dadurch gelöst, daß eine erste Operatoreinheit vorgesehen ist, die einen Stapelspeicher umfaßt, zur Aufnahme von den Seiten zugeordneten, nach dem Kriterium "am längsten unbenutzt" gewichteten Benutzungskennwerten (LRU), daß die erste Operatoreinheit jeweils eine neuaufgerufene Seite unabhängig davon, ob sie im Primärspeicher gefunden wird oder aus dem Sekundärspeicher zu holen ist, unter Zuordnung des niedrigsten LRU-Kennwertes an den Kopf des Stapels setzt, wozu die Kennwerte der restlichen Seiten dementsprechend abgeändert werden, daß eine zweite Operatoreinheit vorgesehen ist, die einen Stapelspeicher umfaßt zur Aufnahme von Mininmalkapazität-Kennwerten (MMC) für die minimale PrimärSpeicherkapazität, die ein Aufruf einer Seite im Optimalfalle bei Vermeidung unnötiger Seitenaustauschoperationen erfordern würde, daß der Stapelspeicher der zweiten Operatoreinheit jeweils mit dem LRU-Kennwert aus der ersten Operatoreinheit, der für die aufgerufene Seite bis zum Zeitpunkt des Aufrufs gültig ist, adressiert wird, daß die zweite Operatoreinheit dem MMC-Wert an der adressierten Position mit den in Stapelrichtung darunter .
YO 972 094 509807/1071
befindlichen MMC-Werten vergleicht sowie den jeweils kleinsten der verglichenen Werte durch den MMC-Wert der adressierten Position ersetzt und in das oberste Register des Stapels überträgt, wozu der Inhalt der darunter befindlichen Register bis zum adressierten Register jeweils um eine Stelle verschoben wird, und daß eine MMC-Kategorien-Zählschaltung vorgesehen ist, welche die Häufigkeit der Eingaben jeweils eines bestimmten MMC-Wertes in das oberste Register des Stapels für wenigstens einen Teil der MMC-Werte als Maß der Austauscheffektivität zählt.
Verschiedene vorteilhafte Ausgestaltungen der Erfindung sind aus den Ansprüchen ersichtlich. Nachfolgend ist ein Ausführungsbeispiel der Erfindung anhand von Zeichnungen erläutert. Es zeigen:
Fig, I Ein vereinfachtes Blockschaltbild einer Datenverarbeitungsanlage mit einem virtuellen Speichersystem und mit einem Ausführungsbeispiel der Anordnung gemäß der Erfindung,
Pign. 2A-2Z in der Zusammengehörigkeit gemäß Fig. 2 ein detailliertes Blockschaltbild der Anordnung von Pig. I, .
Fign. 3A-3D in der Zusammengehörigkeit gemäß Fig. 3 ein
Blockschaltbild der Stufen des LRU-Stapelspeichers, wie er in der Anordnung von Fig. 2A-2Z verwendet wird,
Fig. 4 ein Schaltbild der Stufen des MMC-Stapelspei-
chers, wie er in der Anordnung von Fig. 2A-2Z verwendet wird,
Fig. 5 eine Tabelle und
Fig. 6 ein Operationsfolgediagramm zur Erläuterung der
Arbeitsweise der dargestellten Anordnung.
YO 972 09M 509807/1071
In der nachfolgenden Beschreibung der Erfindung soll zuerst ein Programm betrachtet werden, welches .durch seine Seitenbezugsreihe R dargestellt ist. Für jeden Ersatz-Algorithmus (Seitenaustausch-Algorithmus) ist eine solche Reihe die Eingabe. Was die Ausgabe betrifft, so erzeugt der oben erwähnte MIN-Algorithmus für eine gegebene Speichergröße einen einzigen Wert, d.h. die kleinste Zahl von Seitenfehlern, die zum Laufen eines Programmes notwendig ist. Der erwähnte OPT-Algorithmus benutzt die Eingabereihe R zuerst zur Erzeugung der LRU-Stapelstreckenfolge und dann benutzt er diese neue Folge als Eingabe für den Prozeß, der tatsächlich die Reihenfolge der sogenannten Mindeststapelstrecken (Minimalabstände) herauszieht. In diesem Zusammenhang wird auf die oben erwähnte Veröffentlichung von Mattson. und andere verwiesen zur Definition des Ausdrucks "Stapel". Dabei wird jedes Element der Reihe R, d.h. der Originaleingabe, verbunden mit einer Stapelstrecke. Da eine optimale Stapelstrecke im wesentlichen die Mindestspeichergröße ist, die zu einer Referenz so gehört, derart, daß keine Fehlseite erzeugt wird, läßt sich die Mindestzahl von Fehlern für jede feste Speichergröße aus der Streckenreihe errechnen. Diese Berechnung ist in der erwähnten Mattson-Veröffentlichüng beschrieben. In der hier beschriebenen Erfindung ist kein expliziter Stapel im Sinne der Mattson-Veröffentlichüng vorgesehen. Die Folge von Hindestspeicherkapazitäten (MMC) wird Ausgabereihe genannt.
Bisher war das Endziel der optimalen Stapelkonstruktion für die Auswertungvon Speicherhierarchien die Erzeugung der MMC-Reihe. In diesem Zusammenhang lassen sich die sogenannten "Trefferverhältnisse", d.h. die normalisierten Seitenfehlerzahlen als Funktion der Speichergröße direkt von der MMC errechnen. Dadurch kann man umfangreiche Aufzeichnungen der MMC-Reihe vermeiden.
In der nachfolgenden Beschreibung ist der zur laufenden Referenz gehörende MMC-Wert an jedem Punkt der Seitenbezugsreihe R eindeutig eine Funktion der vorhergehenden Referenzen, wodurch sich eine Vorausschau erübrigt und demzufolge weggelassen werden kann.
YO 972 094 509807/107
An diesem Punkt der Beschreibung der Erfindung wird für das nötige Hintergrundsmaterial soviel wie nötig vom MIN-Algorithmus beschrieben, wie er in der oben erwähnten Veröffentlichung von L. A. Belady in IBH Systems Journal, June I966 beschrieben ist. Der Konzeptrahmen dieses Algorithmus ist eine zweidimensionale Markierungs-Matrix, in der eine Zeile zu jeder einzelnen Seite gehört. Ein Satz von Konstruktionsregeln der Matrix für eine gegebene Speichergröße ρ und eine Bezugsreihe R ist folgender:
Wenn angenommen wird, daß der nächste Bezug in der Seitenbezugsreihe R zur Seite α erfolgt und die äußerste rechte nicht leere Spalte t-1 ist, dann gilt:
Wenn Zeile α leer ist, markiere (α, t) und kehre zurück. Sonst finde die äußerste rechte Spalte t mit einer Markierung in Zeile α.
Wenn eine Spaltex existiert, t < τ < , mit ρ Markierungen, markiere (α, τ) und kehre zurück.
Andernfalls markiere alle leeren (α,τ), t < τ <t, und kehre zurück.
Nach sequentieller Verarbeitung der Eingabereihe R nach den obigen Regeln ist die Anzahl nicht leerer markierter Spalten gleich der Mindestzahl von Seitenzügen, die zum Lauf des Programmes erforderlich sind.
Es folgt ein Beispiel mit einer Speichergröße ρ = 3 und einer Eingangs- (Referenz)-Reihe ABCDEDBCBDAEEAC von 15 Elementen.
Al 11
B 11111
C 1 111
D 111
E 11
In dem obigen Beispiel verursachen wiederholte Referenzen wie z.B. EE keine neuen Markierungen für einen Wert von ρ und sind somit redundant. Bei der weiteren Beschreibung der Erfindung wer-
YO 972 ü94 509807/1Ü71
den daher Wiederholungen unterdrückt,und als Beispiel wird die folgende Reihe benutzt ABCDEDBCBDAEAC.
jJie oben festgelegte Matrix ist relativ leicht zu interpretieren. Lücken in der Reihe stellen einen Seitenbezug von außen dar und Markierungen in einer gegebenen Spalte bezeichnen koexistente Seiten im Speicher. Innerhalb der durch die Speichergröße ρ festgelegten Beschränkung können Lücken mit Markierungen aufgefüllt werden bei einem neuen Bezug zu einer voherbezogenen Seite, wodurch ein Seitenzug vermieden wird. Tatsächlich stellen p-Markierungen in einer Spalte ein Hindernis für einen Füllversuch dar, d.h. die Lücke ist permanent. Die Spalten der p-Markierungen werden im allgemeinen mit einer. Verzögerung aufgebaut.
Da diese Darstellung aus dem Betrieb des.MIN-Algorithmus resultiert, ist es jedoch schwierig, Matrizen zu vergleichen und dann zu interpretieren, die von verschiedenen p-Werten erzeugt sind, da die Spalten im allgemeinen nicht aufeinander und auf die Eingabereihe ausgerichtet sind. So wurde für das obige Beispiel und p=5 eine Spalte erzeugt mit lauter markierten Positionen, während die zu p=l gehörende Matrix so viele Spalten hat, wie Seitenbezüge zur Ausgabe sind, während jede Spalte nur eine Markierung hat.
Nach dem Erfindungsgedanken wird der obige MIN-Algorthmus modifiziert. Wenn in der modifizierten Form der nächste Bezug gegeben wird, werden (α, t) für alle Fälle markiert. Da vor diesem neuen Bezug (α, t) durch Definition leer war, werden Matrizen für alle Speicher mit der Eingabereihe ausgerichtet und t kann als der Zeitindex für die Seitenreferenzreihe R betrachtet werden. Die nächste Referenz x, mit der zugehörigen t-ten Spalte. Zusätzlich zu den obigen Regeln erfolgt die Markierung (α, t) im letzten Schritt. Nachfolgend sind alle fünf Matrizen, d.h. p=l, ... 5 in dem verwendeten Beispiel gezeigt, das mit den modifizierten Regeln arbeitet.
YO 972 094 509807/ 1071
- ίο -
h UCl.) 1·; D ß CBD h E Λ C 1 11
H I 1 1 1 1 1 1 1 1 1 1 1 1 1 1
C 1
D 1 1
F.
Ä 1 1 3.
B 1 .1 1 1 1 1 1 1 1 1 1
C 1
D 1 1
E 1 1 1
A 1 1 1 1 1 1
D 1 1 1 1 1 1 1 1 1
C 1 1
ΪΛ 1 1
P = 2 ρ ■= 3
Al 111
IJ 11111111
C 111111111111 ρ = 4
D 1111111
E 11111111
A 111111111.1111
ß 11111111
C 111111111111 ρ = 5
ϋ 1111111
L 11111111
Ähnlich wie in der oben gezeigten Matrix übersteigt die Anzahl von i'larkierungen in einer Spalte niemals den Wert p, kann aber kleiner sein. Die Mindestzahl von zum Laufen des Programmes notwendigen Zügen ist dann gleich der Anzahl von i-larkierungen, vor denen links keine Markierung, sondern eine Lücke steht.
YO 972 091 509807/1071
Die fünf oben gezeigten Matrizen werden jetzt überlagert. Es kann jedoch dabei keine gleichförmige.Markierung, d.h. die Zahl 1, verwendet werden, da dieses zu einer nichtschlüssigen Figur führen würde, die mit der Matrix für p.= 5 identisch ist, welche die Einheit aller fünf Matrizen ist. Erweitert man den Bereich der Zeichen für die Markierung, so werden daher die neuen Zahlen 2, 3 und k unter Beachtung der Reihenfolge der ganzen Zahlen, die sie darstellen, eingeführt. ■
Außer den bisher gegebenen Regeln des erfindungsgemäßen Algorithmus sind noch Regeln erforderlich, um die Benutzung der Zahlen bei der Markierung zu lenken, beispielsweise, die Erhaltung von Information über alle Fälle auch nach überlagerung. Um die Konstruktionsregeln zu zeigen, verfährt man wie folgt:
1. Die alte Zahl 1 wird in der Matrix für P=I verwendet, wodurch das Verfahren für diesen Fall dann unverändert ist und es steht eine 1 in so vielen Spalten"wie Bezüge verarbeitet werden. Es wird keine andere Zahl verwendet.
2. Als nächstes wird festgestellt, daß keine Spalte Doppelzahlen enthält. Mit dieser Feststellung soll das Ziel erreicht werden, zwischen Fällen unterschiedlicher p-Werte nach der überlagerung unterscheiden zu können. Wenn also in einer gegebenen Position die Matrix' ρ eine Markierung enthält, die Matrix (p-1) jedoch nicht, unterscheidet eine Zahl, die bisher in der entsprechenden Spalte in der Matrix (p-1) noch nicht benutzt wurde, zwischen diesen beiden Fällen.
Jetzt kann man eine kombinierte Matrix aufbauen, indem man die Bezugsreihe kontinuierlich verarbeitet. Bein nächsten Bezug X+.
auf die Seite α. wird die Zahl 1 zur Markierung (α, t) verwendet, wann beobachtet man eine Lücke links von der neuen Markierung, die an der linken Seite entweder durch den Rand der Matrix (neue Referenz) oder durch eine Zahl 1 (die jüngste vorhergehende Rererenz zur Seitea ) begrenzt ist. Im ursprünglichen MIN-Algorith- Y0 972 W 50 98 0 7/ 10 7 T
mus würde im Gegensatz dazu., die Lücke nur gefüllt werden, wenn für jede Spalte im Bereich der Lücke die Zahl der Markierungen kleiner ist als ein festgelegter Wert für p. Nach dem Erfindungsgedanken wird eine Matrix jedoch für alle möglichen Werte von ρ aufgebaut und daher wird die Zahl für die Markierung verwendet, die in der Position (α, t-1) den höchsten p-Wert aufweist, für den die Lückenfüllung gültig ist, d.h. für den Markierungen möglich sind zwischen den beiden letzten aufeinanderfolgenden Referenzen oder vor der ersten Referenz zur Seite α.
Da für alle Speichergrößen die Mindestzahl von zum Lauf des Programmes notwendigen Seitenausnahmen, festgestellt werden soll, müssen die Zahlen in einer bestimmten Reihenfolge verwendet werden. Beginnend mit der äußersten linken Position der Lücke, wird die kleinste noch nicht in dieser Spalte vorhandene Zahl zur Markierung benutzt. Da zu der Zahl auch eine Bedeutung gehört, d.h. sie die p-Größe des Speichers angibt, der die Seite enthalten kann, bildet eine einmal in einer Lücke verwendete Zahl eine untere Grenze nach rechts in derselben Lücke, d.h. bevor die Zahl 1 erreicht wird. Mit anderen Worten, eine Zahlenreihe 223444 ist gültig, während z.B. eine Zahlrenreihe 223443 nicht gültig ist. Der Grund für diese nicht abnehmende Folge in der Zahlenreihe ist offensichtlich. Für die betrachtete Seitenschiebeanforderung heißt das, wenn eine Seite einmal kein Element des Speichers der Größe p, d.h. aus diesem geschoben ist, zieht nur ein anderer Bezug zur Seite sie wieder in alle Speicher zurück, die kleiner oder gleich ρ sind einschließlich des Speichers der Größe 1.
Eine Lückenfüllreihe aus nur einer Zahl a wird jetzt als a-Reihe bezeichnet. Die mit einer Zahl a beginnende und mit einer Zahl b endende Reihe wird a/b-Reihe genannt. Die obige gültige Reihe ist dann eine 2/4-Reihe. Weiter wird auf den Reihen der Wert der Einsen ausgeklammert. Demzufolge haben a oder b niemals den Wert 1. Es folgt jetzt eine Zusammenfassung des oben Gesagten in einem numerischen Reihen-Algorithmus:
YO 972 094 509807/1071
Es wird angenommen, daß der nächste Bezug in der Reihe R,x, zur Seite α verläuft.
Dann folgt die Markierung (α* t) mit einer Zahl 1. B-eginnend mit der äußersten rechten nicht leeren Position ta in einer Zeile ist jede Position (α, τ), ta< τ < t mit einer Zahl P(=t) = max (u, v) zu bezeichnen, worin u = die Mindestfehlzahl in der Spaltβτ und ν die Zahl in der Position (α, t-1) ist und dann kehrt man zurück.
Die Anwendung des obigen Regelsatzes auf das weiter oben besprochene Beispiel erzeugt die folgende Zahlenmatrix:
ABCDEDBCBDAEAC
A1234555555121
B2 122331 21
03313^4 4 1222 33 1
D4441212331
E55551234444.1
2345234235423
Es ist einfach, die gleichförmig markierte Matrix für jeden gegebenen p-Wert herauszuziehen. Eine solche Extraktion kann durch die folgenden beiden Schritte erfolgen;
a) alle a/b-Reihen (zwischen den Einsen) entfernen, für die b* p;
b) alle übrigen Symbole in Einsen verwandeln.
Daraus läßt sich entnehmen, daß die kombinierte Matrix die folgenden Eigenschaften hat. Wenn der t-te Bezug zur Seitea erfolgt, dann ist (α, t) markiert mit 1. Außerdem stellt die Zahl (cc, t-Ί) d.h. ρ die Mindestkapazität des Speichers (MMC), der die Seite aenthält, dar vor dem t-ten Bezug. Die Folge dieser MMC-Werte ist unmittelbar unter der Zahlenmatrix wiedergegeben. Für jeden Bezug gibt es einen MMC mit Ausnahme des ersten, der nach Defi-
YO 972 094
109807/1071
- λ h -
nition die Zahl 1 ist, da jedoch wiederholte Bezugnahmen ausgeschaltet sind, wird dieser erste MMC-Wert unterdrückt.
Demzufolge erübrigt zwar der Algorithmus nach dem Erfindungsgedanken den durch den oben beschriebenen OPT-Algorithmus geforderten ersten Vorausschaudurchgang, erzeugt aber die gesamte durch den MIN-Algorithmus erzeugte Information. Da die Zahlen für (OPT) Stapelstrecke stehen, ist die Reihenfolge der Zahlen in einer gegebenen Zeile die Geschichte der AusSchiebevorgänge aus den Speichern verschiedener Größen. Eine Änderung von a nach b zeigt daher an, daß die Seite von Speichern der Größe c, a£-c<b ausgeschoben wird.
Durch die Leichtigkeit der Matrixkonstruktion wird der Umfang der Matrix jedoch nicht kompensiert, wobei eine ihrer Abnützungen nur durch die Länge von R begrenzt ist. Da ein Hochgeschwindigkeitsspeicher dieser Größe kaum für die automatische Berechnung zur Verfügung steht, ist eine kompaktere Darstellung vorgesehen, die die wesentliche Information zur Erzeugung der MMC-Polge als Antwort auf die Eingabereihe R enthält. Da historische Information praktisch kaum gebraucht wird, wird sie unterdrückt.
Im numerischen Reihen-Algorithmus wird bei der Präsentation des nächsten Bezuges eine neue Reihe aufgebaut, die der Einschränkung durch bereits frührere ausgebaute Reihen unterliegt. Um eine Kompaktheit zu erzielen, werden die Einschränkungen so zusammengefaßt, daß die neue Reihe ausreichend definiert ist und insbesondere wird die äußerste rechte Zahl dargestellt, die die zur Seitenreferenz gehörende MMC-Ausgabe bezeichnet.
Am einfachsten konstruiert man hierzu unabhängig für jede Gruppe die kleinste a/b-Reihe oder kurz Mindestreihe unter Anwendung der oben angegebenen Regeln. Im hier gegebenen Beispiel würde der nächste Bezug entweder B oder ü eine 4 als Ausgabe erzeugen, während ein Bezug auf E oder A in einer 2 resultieren würde (ein Bezug C wäre eine Wiederholung). Die entsprechenden in der Reihen-
YO 972 094
SQ9807/1071
folge ihrer Länge oder der gleichwertigen Reihenfolge der am weitesten zurückliegenden Benutzung früherer Referenzen ist folgende; ν
A 2 .
E 2 2 ' '
03^44 ·
B 3 3 k 4 4
Nur eine dieser Reihen würde natürlich zur tatsächlichen Mindestreihes d.h. diejenige Reihe, die tatsächlich als nächste angezogen wird. Ein neuer Satz potentieller Ausgaben kann dann definiert werden. Dadurch sollen die potentiellen Ausgaben so beschrieben werden9 daß bei Kenntnis der nächsten Referenz nicht nur die zugehörige Ausgabe definiert ist, sondern auch die Beschreibung der neuen potentiellen Ausgänge zur Verfügung steht.
Um zu einer solchen Anordnung zu kommen, muß man beachten, daß die Mindestreihe für D im Beispiel eine richtige rechts ausgerichtete Unterreihe der Reihe für B ist; eine ähnliche Beziehung besteht zwischen A und E. Als nächstes stellt man fest, daß in der längsten Lücke für die Reihen nur eine Startzahl auszuwählen ist. In der nächsten längsten Lücke sind zwei freie Zahlen, dann drei usw. Im oben erwähnten Beispiel ist die drei die einzige Wahl für die Startzahl von B, drei und fünf sind aber beide als Startzahlen für D ohne Doppelzahlen in einer Spalte möglich. Ähnlich sind zwei, vier und fünf für E möglich und schließlich alle.Zahlen außer eins für A. Unabhängig aufgebaute Mindestreihen für einzelne Lücken beginnen natürlich immer mit der kleinstmöglichen Zahl nach Darstellung in der obigen Tabelle.
Zwei Arten von Mindestreihen sind jetzt definiert: Die direkte Mindestreihe IMS und die bedingte Mindestreihe CMS. Die IMS des Elementes aist die Zahlrenreihe, die durch die oben erwähnten Regeln erzeugt wird, wenn die nächste Referenz zum Element A erfolgt. Die oben für A, E1, D und B aufgeführten Reihen
YO 972 094
509807/1071 ·
sind dann nach Definition die IMS.
Eine bedingte Mindestreihe CMS ist andererseits eine Mindestreihe, deren Anfangszahl nicht die kleinstmögliche Zahl ist und es ist entweder eine richtige rechts ausgeschlossene Unterreihe einer IMS oder eine eine längere Lücke füllende CMS oder sie kann als Mindestreihe aufgebaut werden, nachdem alle größeren Lücken gefüllt sind.
Anschließend werden die IMS und die CMS für das Beispiel aufgeführt :
IMS CMS
A 2
E 22
D 3Wi
B 33W
55
5555
Die oben aufgeführten IMS sind mit den vorhergegebenen identisch. Die Reihe 5555 als eine CMS für D ist z.B. aufgebaut worden unter der Annahme, daß die einzige B-Reihe bereits gezogen wurde. Andere CMS's werden ähnlich erzeugt. Es ist zu beachten, daß jede Reihe (IMS oder CMS), die keine ünterreihe in der obigen Liste ist, unterstrichen ist, und eine solche Reihe nennt man in geeigneter Weise eine primitive Reihe. Jede andere, nicht unterstrichene Reihe ist dann eine Unterreihe einer solchen primitiven Reihe.
Wegen der Reihen/Unterreihen-Einschlußeigenschaft IMS/CMS und durch die oben festgelegten Konstruktionsregeln, gibt es so viele Primitive wie es Lücken gibt. Wenn η die Anzahl von bereits angezogenen Elementen ist, dann gibt es n-1 Primitive. Für das Beispiel werden vier Primitive (in der obigen Liste unterstrichen) nach den folgenden Regeln aufgebaut:
YO 972 09H
509807/1071
1.) Längste Lücke wählen und ihre Mindestreihe ziehen.
2.) Die nächst kleinere Lücke wählen und die Mindestreihe unter der Annahme ziehen, daß alle längeren Lücken mit IMS und CMS gefüllt sind.
3.) Die obigen Schritte wiederholen, bis alle Lücken gefüllt sind.
Im allgemeinen enthalten die Bestimmungszahlen der (n-1)-Primitiven alle direkten und bedingten Mindestausgabewerte. Die Liste der Primitiven für das obige Beispiel ist folgende:
wobei die Endzahlen in einen Block eingeschlossen sind. Diese in der Reihenfolge der am weitesten zurückliegenden Benutzung geordnete Spalte, gebildet durch die Primitiven, ist definiert aus de>P p-Stapel der Ausgabewerte und wird folgendermaßen interpretiert :
B, das am längsten unbenutzte Element,hat nur eine Anfangszahl für eine Mindestreihe (MS) und seine Endzahl ist vier, welches die nächste MMC-Ausgäbe ist, wenn B als nächstes angezogen wird.
Als nächstes gibt es zwei mögliche Anfangszahlen für D und durch Konstruktion enden die entsprechenden IMS und CMS bei vier und fünf, die bei bzw. unter D in p-Stapel aufgeführt sind. Da die Zahl 4 die kleinere der beiden ist, wird sie bei der nächsten Bezugnahme die MMC, die zu D gehört. Ähnlich hat E drei IMS und CMS, die mit zwei, vier und fünf enden und daher wird die kleinste Zahl zwei die Ausgabe, wenn E als nächstes angezogen wird. Die MMC des Elementes A wäre ebenfalls zwei ^ da sie die kleinste der Endzahlen zwei, drei, vier und fünf ist.
YO 972 094
9&Q7/T0 7
Betrachtet man den p-Stapel der Ausgabewerte in der Reihenfolge der am weitesten zurückliegenden Benutzung ihrer zugehörigen Elemente .. so läßt sich allgemein der MMC-Wert für das nächste angezogene Element beispielsweise wie folgt berechnen:
Wird als nächstes das in der &-ten Reihenfolge angezogene Element herangezogen, so wird als MMC die kleinste Zahl aus dem Satz S der Zahlen bei oder unter der (Ä~l-ten) Position im p-Stapel gewählt.
Wenn in dem Beispiel das Element E das dritthäufigste angezogene Element ist und als nächstes angezogen wird, dann ist die Ausgabe zwei, welches die kleinste Zahl an oder unter der zweiten Stapelposition ist. Ähnlich wäre die Ausgabe für das Element D die vier usw.
Anschließend wird erklärt, wie der p-Stapel. manipuliert wird, um die neue IMS/CMS-Konfiguration nach Einschluß der nächsten Referenz wiederzugeben.
Die nächste Referenz führt entweder ein Element auf, dessen Ii-lS primitiv ist oder eine richtige Unterreihe, entweder IMS oder eines CMS, das zu einem Element gehört, welches früher angezogen wurde. Durch Definition hat außerdem die längste Lücke (des am längsten unbentutzten Elementes) eine IMS, die primitiv ist. In dem Beispiel sind die IMS für B und E primitiv, während die IMS für D oder A eine Unterreihe sind.
Es wird angenommen, daß jetzt das nächste α angezogen wird. Für den früheren Fall ist IMS dann primitiv. Die IMS und CMS für jedes früher als α angezogene Element (oder in der LRU-Reihenfolge darunter angezogene Element) bleiben unverändert, weil durch Definition der primitiven Reihe keines der längeren IMS oder CMS die eigentlich für α erzeugte Reihe enthält. Die IMS/ CMS der Elemente, die in jüngerer Zeit angezogen wurden als et, werden jedoch verändert, d.h. entweder eine IMS oder eine CMS
YO 972 094
509807/1071
geht für jedes Element in diesem Bereich durch die tatsächliche Reihe in der Zeile verloren. Das ist gleichwertig mit der Be-. wegung des neuen Ausgabewertes, d.h., der Endzahl der tatsächlichen Reihe aus ihrer früheren Position nach oben in den p-Sta-
Wenn im Beispiel E als nächstes angezogen wird·, wobei E's IMS primitiv ist, kann der entsprechende Stapelübergang wie folgt gezeigt werden: (Der klareren Erklärung halber sind auch die Namen der Elemente A bis E in der LRU-Reihenfolge aufgeführt).
C 3 E 2
A 2 C 3
E 5 fs, A Ul
D 4 ^D 4
B B
In ähnlicher Weise würde ein Bezug auf B (ebenfalls mit einem primitiven IMS) den folgenden übergang auslösen:
C 3 B 4
, A 2 C 3
E '· .A
r UI 2
D M 5
r B D
Betrachtet man den letzten Fall, so ist er etwas komplizierter, da die eigentliche Reihe für α nicht primitiv ist. Die IMS/CMS-Konfiguration einiger Elemente, die früher weniger häufig angezogen wurden als α, wird natürlich verändert, da eine die eigentliche Reihe enthaltende IMS richtig existiert. Der ungenutzte Teil dieser einschließenden Reihe muß ebenfalls durch neue Zahlen nach rechts erweitert werden. Unter der Mindestbesehränkung werden diese Zahlen die kleinste (frühere) CMS von α. Diese CMS von α wiederum kann eine Unterreihe während einer anderen IMS oder CMS ein, wodurch ihre einschließende Reihe durch die nächst kleinste CMS von aherausgezogen wird usw., wie es in folgendem
YO 972 094
509 807/1071
Beispiel gezeigt ist:
A
B
C
D
E
In der obigen Darstellung trennen die gezackten Linien die tatsächlichen Reihen von den IMS und CMS.
Die letzte Spalte in der rechten Matrix gibt richtig die neue Ausgabekonfiguration (Endzahl) aller IMS und CMS an. Daraus kann man den entsprechenden Stapelübergang wie folgt herausziehen:
Die neue Ausgabe ist eine zwei, die die Endzahl der tatsächlichen Reihe für A ist. Beim übergang wird diese Zahl zwei oben in den Stapel gesetzt und dadurch angezeigt, daß von jetzt an für einige Zeit keine IMS oder CMS mit der Zahl zwei enden mit Ausnahme einer IMS für das oberste Element E (jetzt das am zweithäufigsten angezogene Element). Da das Element C seine IMS aus 2222 verloren hat, enderfjdseine neue IMS mit einer drei, welches die kleinste CMS von A ist. Diese Reihe ist jedoch nicht primitiv und daher verliert B seine CMS von 333» die ersetzt wird durch die Reihe 33^4, endendmit einer vier, die die nächst kleinste CMS von A war. Nur die Reihe 55 bleibt unberührt.
Es wurde bereits beschrieben, wie man den Ausgabewert MMC im Satz S des p-Stapels findet, wenn die nächste Referenz gegeben wird. Um die neuen Bedingungen fortschreiben zu können, muß man den Ausgabewert aus dem Stapel herausnehmen und anschließend
YO 972 094
509807/1071
- 2.1 -■-;-■
oben hinaufsetzen. Die leer gemachte Position ist dann mit der nächst kleineren Zahl im Satz S des Originalstapels über der leeren Stelle zu füllen. Dadurch wiederum wird eine neue mit der nächst kleineren Zahl in diesem Bereich zu füllende Leerstelle geschaffen usw. Eine genaue Beschreibung dieser Regeln folgt.
Die Arbeitsweise des Systems nach dem Erfindungsgedanken kann im Konzept folgendermaßen dargestellt werden:
M w (MMC)
worin L ein Operatior ist, der die Folge R von Seitenreferenzen in einer Folge L von LRU-Positionen umwandelt. Er hält die bereits angezogenen Seiten (Seitennahmen) in einem LRU-Stapel fest und ist wie folgt definiert:
Wenn die als nächste angezogene Seite nicht im LRU-Stapel steht, wird die neue Seite oben in den Stapel gesetzt, η und die Zahl von Seiten im Stapel um eins erhöht, (n-1) wird ausgegeben und es erfolgt die Rückkehr. ■ . ..
Wenn andererseits die Seite in der 'k-ten Position des LRU-Stapels gefunden wird, wird diese Seite herausgenommen und -oben auf den Stapel gesetzt, (k-1) wird ausgegeben und es erfolgt die Rückkehr.
ist ein Operator, der die Folge L der LRU-Positionen in einer Folge M von Mindesstpeicherkapäzitäten (MMC) transformiert. Frühere Ausgabewerte (Einschränkungen) werden dadurch in einem modifizierten LRU-Stapel festgehalten und folgendermaßen definiert: Wenn die nächste Position Null ist, erfolgt eine Rückkehr. Andernfalls, wenn die £-ste Position im modifizierten Stapel leer ist, wird die Zahl (H+1) = ρ oben in den Stapel gesetzt, wobei ρ ausgegeben wird und eine Rückkehr erfolgt. Andernfalls wird der kleinste p-Wert bei oder unter der Jt-ten. Position Im modifizierten Stapel gefunden.
109720911 50 9 *07 /1071
Wenn ρ auf der *--ten Position steht, wird ρ herausgenommen und oben auf den Stapel gesetzt, ρ wird ausgegeben und es erfolgt eine Rückkehr.
Andernfalls wird der kleinste Wert p1 über ρ gefunden, der bei oder unter der λ-ten Position steht; ρ und p1 werden im modifizierten Stapel ausgetauscht und es erfolgt eine Rückverzweigung zum unmittelbar vorhergehenden Schritt.
Die beiden letzten Schritte sind identisch mit einem Durchlauf der bekannten Blasensortierung, d.h. einer paarweisen Austauschsortierung.
DerJ^Operator kann somit allgemein folgendermaßen beschrieben werden: das Auffinden des Mindestwertes ρ im unteren Teil P-Stapels, d.h. die Elemente bei und unter der I -ten Position mit hilfe eines Durchlaufes mit einer Blasensortierung und das anschließende Setzen von ρ oben auf dem Stapel.
Die Richtigkeit des OPT-Algorithmus mit zwei Durchgängen wird in der oben erwähnten Veröffentlichung von Mattson bewiesen. Die nach dem Erfindungsgedanken durchgeführte Operation kann als ein OPT mit einem Durchgang betrachtet werden, wobei die Zahlen (OPT) die Stapelpositionen darstellen.
Es folgt eine formale Beschreibung des OPT-Algorithmus und des neuen durch die Erfindung ausgeführten Algorithmus mit einem Durchgang. In diesen Beschreibungen wird gezeigt, daß der Algorithmus mit einem Durchgang dieselbe Streckenreihe (MMC-s) erzeugt wie der OPT-Algorithmus.
Wie bereits oben beschrieben wurde, werden beim Algorithmus mit einem Durchgang zwei Stapel gehalten. Einer dieser Stapel ist der LRÜ-Stapel , der die Liste der in der LRÜ-Reihenfolge angezogenen Seiten darstellt. Die zuletzt angezogene Seite befindet sich also oben im Stapel, d.h. eine Seite α liegt über der Seite β , wenn und nur wenn die Seite β zu einem weiter zurückliegen-
Y0
509807/1071
den Zeitpunkt angezogen wurde als die Seite α .
Der zweite Stapel (P) kann als Pseudo-OPT-Stapel betrachtet werden. Er besteht aus einer Liste von ganzen' Zahlen, aus denen die OPT-Stapelstrecke für jede angezogene Seite errechnet werden kann. Wenn eine Seite- angezogen wird, findet sich ihre Position im LRU-Stapel. Die OPT-Stapelstrecke ist die kleinste ganze Zahl im P-Stapel, die auf oder unter der LRU-Stapelposition steht.
Der LRU-Stapel wird auf den neuesten Stand gebracht, indem man die angezogene Seite oben in den Stapel setzt und jede darüberliegende Seite um eine Position nach unten schiebt.
Der P-Stapel wird wie folgt auf den neuesten Stand gebracht: Der Wert an der LRU-Position wird aufbewahrt und alle Stücke zwischen diesem Wert und der zweiten Position werden um eine Position nach unten bewegt. Der aufbewahrte Wert wird mit dem Wert in der näcächsten Position verglichen. Der größere dieser beiden Werte wird in diese Position gesetzt und der kleinere Wert gerettet. Der Prozeß wird fortgesetzt, bis der Boden des P-Stapels erreicht ist. Der gerettete Wert wird zur OPT-Stapelposition und in die zweite Position des P-Stapels gesetzt.
Dieses Verfahren, die Stapel auf den neuesten Stand zu bringen, kann auch wie folgt beschrieben werden.:
Nimmt man an, daß k die LRU-Stapelposition ist, so sind alle Teile zwischen 2 und k-1 markiert. Danach ist das nächste markierte Teil dasjenige, welches den kleinsten Wert unter den Teilen hat, die nicht auf oder unter der Position k und über dem letzten markierten Teil stehen, wenn ein solches existiert. Dieses Verfahren wird fortgesetzt, bis das Teil k markiert ist. Das markierte Teil in der untersten Position ist der OPT-Stapelwert, d.h. die Position. Alle anderen markierten Teile werden in die nächst niedere markierte Position verschoben und der OPT-Stapelwert wird in die zweite Position des P-Stapels*gesetzt. Die Ausgabe
YO972W 509807/107 1
ist die LRU-Stapelposition k und die OPT-Stapelposition (AKC), Um hier einen Vergleich zwischen dem Algorithmus der Erfindung und dem OPT-Algorithmus zu ermöglichen, wie er von Mattson beschrieben wird, wird die Operation des OPT-Algorithmus anschließend zusammengefaßt.
Bei der Operation dieses Algorithmus wird im ersten Durchlauf der Seitenbahn die Vorwärtsstreckenreihe geschaffen, d.h. die Referenzreihe R = X1, X5, ... X. und die Vorwärtsstreckenreihe F = P1, P2, ... Fn, wobei die Vorwärtsstreckenreihe effektiv die Zusammenfassung der "Zukunft" der Referenzreihe ist. Der OPT-Algorithmus in sich selbst ist ein Stapel-Algorithmus, der durch eine Prioritätsliste induziert wird. Betrachtet man somit den Stapel Q. und die Prioritätsliste L. zur Zeit t, wenn X+.+^ die nächste angezogene Seite ist, dann ist ihre Position k im Stapel Q, die OPT-Stapelstrecke. Diese nächste angezogene Seite wird in die Ausgabereihe und oben auf den Q-Stapel gesetzt. Die Punkte über dieser nächsten angezogenen Seite werden folgendermaßen umgeordnet: Die Priorität für die verschobene Seite und die Seite in der nächsten Position werden verglichen. Die Seite mit der höchsten Priorität (niedrigste Prioritätszahl) wird in diese Position gesetzt, während die andere Seite verschoben wird. Dieser Vorgang läuft weiter, bis die nächste Seitenposition k ist, dann wird die letzte verschobene Seite in diese Position gesetzt. Die Prioritätsliste L wird wie folgt auf den neuesten Stand gebracht: Alle Prioritäten, die kleiner oder genau so groß wie die Vorwärtsstrecke F^+1 sind, werden um eins reduziert und die Priorität für die angezogene Seite Xt+1 ist Ft+1·
Im Zusammenhang mit dem erfindungsgemäß erzielten Algorithmus wurde oben gezeigt, daß die MMC-Werte in einem Durchlauf erzeugt werden können. Außerdem wurde erwähnt, daß diese MMC-Werte tatsächlich die OPT-Stapelstrecke sind. Im numerischen Matrix-Algorithmus kann man jedoch eine Folge von OPT-Stapeln halten, die nur teilweise ausgefüllt sind gegenüber dem OPT-Algorithmus mit zwei Durchgängen, der keine Lücken hat, sondern in dem die Stapel für alle Zeiten bis zum gegenwärtigen Zeitpunkt festgehalten wer-
YO 972 O94
509807/1071
den, weil der erste Durchgang alle notwendigen Informationen über die Zukunft liefert.
L>ie nachfolgende Tabelle basiert auf dem oben erwähnten Beispiel der Referenzreihe ohne die Seite A. In dieser Tabelle werden nur acht aufeinanderfolgende Referenzen verwendet. Um mit dem OPT-Algorithmus übereinzustinunen, ist das Zeichen °° definiert als die zur ersten Referenz zu einer Seite gehörende Ausgabe. In der Tabelle sind für die Zeiten <t-n), (t-n+1), ... (t-1), t in den Spalten Afc und B, nur die jüngsten (n+1) Spalten gezeigt.
ϊο 972 094 509807/1071
Zoit
Seiten- OPT-Stapelreferenz Positionen; X (frühere 2ah-
t lenraatrix)
Liste vor- nicht zufügbarer tjaordnete Ausgafreier Posl- S^itonli- bo tionen Λ.
κ te B.
Wie.
a l
B 1 ι 1 1 1 1 2 B
C -
B 1 1 3 22 ΒΠ
C - 1 2 3 C
D 1 1 1
B 1 1 3 4 1 222 ΛΙϋί
C - _ 3 33 CC
D 1 2 4 4 D
E 1 1 12 1
B 1 1 2 3 4 1 2244 BBIiIi
C - - 4 3 333 ■ CCC
D - 1 2 4 2 Ti
E 2 1 1
B 1 1 2 3 3444 CCCC
C - - 3 4 22 ι·;ε
Π - 1 2 3 D
E 2 1
13 X 1 2 222 IiEE
C 3 33 DD
D - - 1 4 13
E 2 _
Crt 1 1 2244 EKBE
C 333 HDD
D 2 C
E
Anschließend wird das oben aufgestellte i-latrix-Fortsehreibeverfahren mit der OPT-Stapelterminologie interpretieret. Wenn C z.B. zur Zeit 7 angezogen wird, wird die mit C bezeichnete Zeile für die Zeiten 3» 4» 5, 6 und 7 gefüllt. Für t=3 wird die einzig verfügbare Stapelposition, das ist 3, an C gegeben. Für t=4 muß die Stapelposition 4 als einzig verfügbare vergeben werden. Für t=5 ist der verfügbare Satz (2, 4). Somit wird 4 der kleinste Wert
Y0 972 094 509807/1071
BAD ORIGINAL
des Satzes, aber nicht kleiner als die vorher zugeordnete Position. In ähnlicher Weise wird die Position 4 für t= 6 von den nicht zugeordneten Positionen 4, 2 und 3 ausgewählt. Für t=7 wird C der Stapelpositionswert 1 zugeordnet, da diese Seite zu dem Zeitpunkt angezogen wird. Die OPT-Stapelstrecke für C ist die letzte Stapelposition 4 vor der Referenzzeit t= 7.
YO 972 094
50 9807/1071
Jetzt folgt eine formale Struktur, die festlegt, daß der Algorithmus mit einem Durchgang dieselbe Ausgabe liefert, wie der OPT-Algorithmus mit zwei Durchgängen, der in der oben erwähnten Veröffentlichung von Mattson beschrieben ist. Um diese Pormale Struktur zu entwickeln, hat man zunächst erweitete Notierungen, die vorher verwendet wurden. Die Zahlenmatrix erscheint jetzt als
Teilfunktion H . Die vorher verwendeten Ausdrücke A. und B, wert tu
den jetzt formal definiert. Der Ausdrück k ist irgend eine Stapelposition, der Ausdruck γ ist das T-the Element einer numerischen S (α) zur Zeit ta, wobei α eine erneut angezogene Seite ist. Der Ausdruck (a, b) ist der Satz von aufeinanderfolgenden ganzen Zahlen a, a+1 ..., b-1, b; a <b.
Die formale Struktur ist folgende:
Die Polgen der Teilfunktionen H. sind rekursiv wie folgt zu definieren:
Es wird angenommen, daß H. definiert wurde. Wenn . der Satz von z. Zt. t angezogenen Seiten und n. die Anzahl von Seiten in , ist, dann ist definiert:
A t (τ) = l,nt -
Bt (τ) = lt - Hke[l,nt]((x, a),k)eHt>.
Die Reihe S (α) ist definiert als die Folge {((τ,α),γτα <T<t+l, worin t das letzte Mal ist, an dem α angezogen wurde. (Wenn dieses das erste Mal ist, daß α angezogen wird, dann ist t_, = 0 und Y0 = «). Außerdem ist zu definieren:
Yt01 = 1 und Yt+I = 1^
γτ= min {k|k a γ^ und keAfc (τ)}
YO97209* 5098.07/1071
zur Erfüllung von t < τ < t.
Dann ist H^.+1 = HtuS( a).
1 · ■
Mit dieser Definition der Folge Ht kann man jetzt beweisen: Lehrsatz I .
Wenn (τ,α , k) eHt ist, dann ist k die OPT-^St apelpos it ion für die f zur Zeit τ. Dieser Lehrsatz folgt aus
Hilfssatz I: Wenn Ht den stabilen Wert des OPT-Stapels zur Zeit t angibt, dann bestimmt S (α) die OPT-Stapeleintragungen für
für alle Zeiten seit α das letzte Mal angezogen wurde.
Beweis: Wenn α vorher nicht angezogen wurde, dann ist die OPT-Stapelposition für alle τ< t + 1 gleich <» und für τ = t + 1 ist seine Position 1. Wenn α zuletzt zur Zeit t angezogen wurde, dann war seine Stapelposition zu diesem Zeitpunkt 1. Die Position von zu jedem Zeitpunkt t < τ < t wird in den OPT-Algorithmen wie folgt bestimmt: Wenn α in der Stapelposition γ zur Zeit stand, bleibt es in der Position γ; , wenn Yx nicht einer anderen Seite zur Zeit τ + 1 zugeordnet wurde, d.h., YT ist der Satz A, (τ+ l). Andernfalls wird α aus der Position Υτ verschoben, wenn Yx einer anderen Seite zugeordnet wurde, d.h., Y & Afc(T+ 1). In diesem Fall wird seine Stapelposition zur ersten nicht zugeordneten Stapelposition, die größer ist als Y_ .
Der OPT-Algorithmus kann wie folgt interpretiert werden:
Eine Seite α, deren Stapelposition zur Zeit τ= γ ist, bleibt in dieser Position zur Zeit τ+ l, weil
1. Die Stapelposition der angezogenen Seite zur Zeit τ+ 1 kleiner ist als Yx(d.h., α wird nicht aufgerufen) oder
2. wenn α aufgerufen wird, hat es eine höhere. Priorität als alle YO 972
anderen Aufrufer für seine Position. Das kann jedoch nur passieren, wenn Υτ keiner Seite mit höherer Priorität zugeordnet wurde.
Wenn man annimmt, daß <* in der Stapelpositon Ύτ zur Zeit τ steht und die Seite β zur Zeit τ + l angezogen wird und ihre Position Δ ist, dann bleibt α in der■Position γ , wenn γχ> Aj-st. uie Stapelpositon für alle Seiten mit höherer Priorität als γ, wurden bereits durch die Induktionshypothese bestimmt. Somit wird ;/ der ersten verfügbaren Position zugeordnet, die 21 Ύτ ist. Eine Seite kann keine kleinere Stapelposition erreichen, als ihr gegenwärtiger Wert beträgt. Im Kampf um eine gegebene Stapelposition wurden die Positionen für alle Seiten mit einer höhere Priorität als α bereits zugeordnet. Somit kann α um alle Stapelpositionen _> Yx konkurrieren und gewinnt den ersten Wettbewerb, in dem es eine höhere Priorität hat. Das passiert jedoch nur bei Stapelpositionen, die nicht zugeordnet sind. Die Stapelposition für <o6 zur Zeit τ+ 1 ist somit gegeben durch
min {k|k> γ und keA. ( τ+ l) .
In der Defition der Teilfunktionen wurden die Sätze A^. (τ) und B,(τ) fürτ <t eingeführt.
Mit diesen Sätzen wird die Verbindung zu dem OPT-Algorithmus mit einem Durchgang hergestellt. Zuerst sind einige Eigenschaften von At(x) und Bfc(O aufgeführt.
D Bt(T) c Bt(T + D > i ■* At(T + D
2) l<|At(T + 1 D
3) |At(T) i-|at(t) I >i
4) |At(T) l<|At(T + 1 ) i
5) |At(x) I« At(t + 1 ]
6) (a) A. (t) - 12 'nt
t {k}.
(At'(T> - {jl)u{k}
(b) üt t t
. Wenn α vorher angezogen wurde
972 O9I 509807/1071
ö) Bt+1(T } " Bt(T) " iot} *
Wenn α vorher nicht angezogen v/urde
β η
9) At+i(>c)
Definition des L-Stapels und des P-Stapels Stapel und den P-S * τ 5. t wie folgt:
Den L-Stapel und den P-Stapel erhält man aus den Sätzen A (τ) und
definiere t. und α, für i = 1 ... η mit den Formeln
t± = Kiin{SJ JDt.(S)| = i> 1 » Ι,.,.,η
i - 1)
i = I1...,n-1
ctieDt(ti) ~ Bt(ti "
Es ist zu beachten, daß α die zur Zeit t angezogene Seite ist. Für jedes i = 1...n-1 soll S (α.) die Reihe sein, die an die Teilfunktion H angrenzt, nachdem die Reihen .S(U1)... S (α. .) abge grenzt wurden und 3 (a±) als die zur Zeit t verkürte Reih d (α.) definieren. Somit ist
grenzt wurden und 3 (a±) als die zur Zeit t verkürzte Reihe des
S (C1) α ί (JrCt1, γ ) I (j,Ot1,γ ,)eS Ca1) und j = t.,..., X soll dur Satz M,t] χΣ. χ Π,η] und G, = X. - H. sein.
Dann ist Gfc = u ü1 (ιχλ ) .
509807/1071
Definiere P. als Satz von ganzen Zahlen (1, n.) in der durch die Reihen S (0^) induzierten Reihenfolge.
Dann ist
Pt(D = ι
P+-(J) = k wenn und nur wenn
τ
(t»an-j+l'k)eS (ctn-j+l) für J' = 2»"'»n
Definiere außerdem Lfc als Satz von Seiteten Σ t in der durch die Folge <| ... α induzierten Reihenfolge, d.h. in der LRU-Reihen folge. Dann ist
Lt(j) = n_j+i für j = 1, ... n. Mit diesen Definitionen ergeben sich die folgenden Hilfssätze.
z 2;
ZUr Zeit t + 1 angezogen wird, ist die
Ausgabe $κ gegeben durch die Formel
YK = min ik| j (t, a-.kjES1 ( α ) und j I K = min Pt(j) j > η - K - 1
Hilfssatz 3: Wenn P, und L. den Paaren A, und B. entsprechen und αΚ eJL die nächste angezogene Seite ist, dann sind die Stapel P
und L. -, fortgeschrieben, um das OPT-Verfahren mit einem Durchgang dieselben, wie die Stapel P+. ,* und L, Λ entsprechend den Paaren A und B. ...
l/T J1 ο τ X.
Diese beiden Hilfssätze bestätigen die Äquivalenz des OPT-Algorithmus mit einem Durchgang gegenüber dem OPT-Algorithmus mit zwei Durchgängen. Dieses folgt daraus, daß man für jeden Eingang denselben Ausgang erhält und die fortgescl: Lfc+;L der Teilfunktion Ht + 1 entsprechen,
YO 972 094
509807/1071
selben Ausgang erhält und die fortgeschriebenen Stapel P+..-, und
Daher verwendet man vorteilhaft einen entwicklungsfähigen Ersatz-Algorithmus, da nicht alle Seiten eines zu prüfenden Programmes im Hauptspeicher stehen. Im Konzept kann daher die Tabelle im System zur Implementierung seiner Operation, d.h. der p-Stapel aus zwei Teilen bestehen, mit einem ersten oder oberen Teil mit so vielen Eintragungen, wie Seitenrahmen im Hauptspeicher stehen. Wie gewöhnlich ist das Programm jedoch größer als die dafür vorgesehene Hauptspeicherkapazität und der übrige, d.h. zweite überlaufende Teil der Tabelle kann in einem Rückgriffspeicher oder in einem geschützten Bereich des Hauptspeichers gespeichert werden. Wenn eine echte Seitenaufnahme auftritt, kann der Inhalt der beiden Teile der Tabelle auf den neuesten Stand fortgeschrieben werden, so daß er den neuesten Speicherinhalt wiedergibt.
Die in den Zeichnungen dargestellte Anordnung ist Teil 'einer solchen Datenverarbeitungsanlage, die eine zentrale Verarbeitungseinheit 1, einen Primärspeicher 3S. einen Sekundärspeicher 5 und einen die Speicher 3 und 5 verbindenden Kanal J> umfaßt. Eine Speicheraustausch-Steuereinheit 9 dient zur Veranlassung und Durchführung von Speicheraustauschoperationen zwischen dem Primär speicher 3 und dem Sekundärspeicher 5. Die Einheit 9» die auch Teil der Verarbeitungseinheit 1 sein kann, wird jeweils wirksam, wenn ein Fehlseitenzustand bei der Verarbeitung eines Programms auftritt.
Ein solcher Zustand ergibt sich aus den eingangs erläuternden Gründen deshalb, weil in einer Datenverarbeitungsanlage mit virtuellem Speicher der Primärspeicher nur zur Aufnahme eines Teils in der Gesamtzahl von η Seiten in der Lage ist, aus denen das zuverarbeitende Programm besteht. Der Sekundärspeicher enthält jeweils die restlichen Seiten des" Programms (n-m). Eine Fehlseitensituation tritt auf, wenn das Programm eine Seite aufruft, die sich zu dieser Zeit im Sekundärspeicher befindet. Diese Seite wird durch eine Seitenaustauschoperation in den Primärspe'icher gebracht, wozu bei gefülltem Primärspeicher zuvor eine dort gespeicherte Seite in den Sekundärspeicher übertragen werden
YO 972 094
509807/1071
muß. Die Auswahl dieser auszulagernden Seite erfolgt durch den in der Datenverarbeitungsanlage installierten Austausch-Algorithmus.
Die Datenverarbeitungsanlage von Fig. 1 umfaßt ferner eine Operatoreinheit 11. Diese Einheit enthält einen Stapelspeicher 13, in welchem LRU-Daten in Form einer Liste gespeichert sind. Die Liste enthält Namen der aufrufbaren Seiten und diesen zugeordnete ganzzahlige numerische Benutzungskennwerte, die nach dem Kriterium "am längsten unbenutzt" gewichtet sind. Im Ausführungsbeispiel werden als derartige LRU-Benutzungskennwerte die Werte 1-n benutzt. Wie aus Fig. 1 ersichtlich ist, besteht die LRU-Liste aus zwei Teilen, nämlich einem LRU-Stapelspeicher 15, der einen Teil der LRU-Liste enthält, und den Rest der LRU-Liste im Speicher 17. Der Speicherteil 15 enthält η-Register, welche die Seitennamen von η jeweils im Primärspeicher enthaltenen Seiten aufnehmen. Dementsprechend haben die LRU-Benutzungskennwerte, die in Zuordnung zu den Seitennamen im Stapelspeicher 15 gespeichert sind, die Werte 1 bis m.
Jedes Register im Stapelspeicher 15 muß in der Lage sein, einen Benutzungskennwert aufzunehmen, der mindestens so groß wie m ist, Der Rest der gesamten LRU-Liste im Speicher 17 beschränkt sich auf solche Einträge, die den n-m Seiten zugeordnet sind, die sich zur betreffenden Zeit im Sekundärspeicher befinden. Dementsprechend sind den Seitennamen dieser Seiten die LRU-Benutzungskennwerte von (m+1) bis η zugeordnet. Abweichend von der dargestellten Anordnung kann der Speicherteil 17 die vollständige LRU-Liste umfassen. In diesem Falle reichen die den Seitennamen zugeordneten LRU-Benutzungskennwerte von 1 bis n. Eine Einheit 19, die auch Teil der Verarbeitungseinheit 1 sein kann, dient zur Durchführung von Änderungen in den Speichern 15 und 17. Die Einheit 11 führt in Verbindung mit der Einheit 19 die folgenden Operationen durch, wenn eine Seitenaustauschsituation auftrifft.
1. Der Seitenname der Seite, die den Seitenaustausch veran-YO 972 094 509807/1071
laßt, wird in den LRU-Stapelspeicher 15 gebracht und mit dem LRU-Benutzungskennwert 1 versehen.
2. Der Seitenname derjenigen Seite, die vom Primärspeicher 3 zum Sekundärspeicher 5 zu übertragen ist, wird aus dem Stapelspeicher 15 in den Stapelspeicher 17 übertragen und erhält dort den LRU-Benutzungskennwert (m+1) zugewiesen. Bei dieser Seite handelt es sich um diejenige Seite, die unmittelbar vor Auftreten des Fehlseitenzustandes in Stapelspeicher 15 den Benutzungskennwert η besitzt. ■
3. Die Benutzungskennwerte 1 bis (m+1) der restlichen im Stapelspeicher 15 enthaltenen Seitennamen werden jeweils um 1 inkrementiert, so daß sie danach die Werte von 2 bis m einnehmen.
4. Im Stapelspeicher 17 werden von den dort gespeicherten" Seitennamen die Benutzungskennwerte von (m+1) bis 1 weniger des LRU-Benutzungskennwerters der Seite, die aufgerufen wurde und damit den Seitenaustausch veranlaßt hat, jeweils um 1 inkrementiert.
Die Anordnung von Fig. 1 umfaßt ferner eineTTt-Operatoreinheit 21, die als Zusatzeinheit dargestellt ist und einen MMC-Stapelspeicher 23 enthält. Dieser Stapelspeicher besteht aus Registern bis n, von denen jedes einen MMC-Kennwert enthält. Diese Kennwerte können die numerischen Werte 1 bis η einnehmen und haben die oben erläuterte Funktion, indem sie jeweils eine Aussage über die minimale Primärspeicherkapazität angeben, die bei einem Aufruf der dem Wert zugeordneten Seite im Optimalfalle unter Vermeidung unnötiger Seitenaustauschoperationen erforderlich sein würde.
Die Arbeitsweise der -Operatoreinheit 21 besteht darin, daß bei einem Seitenaufruf innerhalb der von der Verarbeitungsein-
094 509807/1071
heit 1 dargebotenen Seitenaufrufkette der MMC-Stapelspeicher durch eine Adresse I in einen oberen Teil und in einen unteren Teil aufgeteilt wird. Der obere Teil umfaßt die Register von 1 bis ( £-1), während der untere Teil die Register α bis η umfaßt. Der Adressenwert £ entspricht dem LRU-Benutzungskennwert, der dem Seitennamen der aufgerufenen Seite in der Operatoreinheit 11 zugeordnet ist. Die Operatoreinheit 21 führt die folgenden Operationen aus:
1. Der Inhalt der Register 2 bis ( &-1) wird um eine Stelle in Stapelrichtung nach unten verschoben, so daß der Inhalt nunmehr in den Registern 3 bis * steht.
2. Es wird das Register k unter den Registern l bis η ermittelt, das zur Aufrufzeit den kleinsten MMC-Kennwert von allen derartigen Kennwerten in den Registernjl bis η enthält .
3. Der Inhalt des Registers k wird in das Register 2 übertragen.
4. In den.in der Gruppe Z bis (k-1) enthaltenen Registern werden, wenn erforderlich, die folgenden markiert, nämlich A, (A+a), U+b),..., bis (k-1), wobei U+a) die niedrigste Registernummer ist die größer als % ist, so daß C(£+a) C(J!,) ist, worin (£+b) die kleinste Registernummer ist, die größer als (A+a) ist, so daß C(£+b) < als C(£+a), usw., worin C(i) der MMC-Kennwert des Registers i ist.
5. Der Inhalt der markierten Register wird in das jeweils nächste Register innerhalb der Gruppe verschoben, und der Inhalt des in Stapelrichtung obersten Registers innerhalb der Gruppe wird in das Register k übertragen.
Am Beginn werden die Register 1 bis η der Operatoreinheit 21 mit den Werten 1 bis η in beliebiger Reihenfolge geladen.
YO 972 094 50 9807/107 1
Anschließend folgt eine Beschreibung der Struktur und Arbeitsweise eines Ausführungsbeispieles der Erfindung, In dieser Beschreibung wird zuerst Bezug genommen auf die Fign. 2A bis V, zusammengelegt gemäß Fig. 2, worin dieses Ausführungsbeispiel im wesentlichen in Blockform gezeigt ist.
Die Erfindung wird in Verbindung mit'einem Computer verwendet und daher ist in Fig. 2A eine.ZE 10* ein Großraum-Sekundärspeicher 12 (Fig. 2B) und ein Primär-Schnellspeieher 14 mit kleiner Kapazität gezeigt. Der Sekundärspeicher 12, der z.B. von einer Plattendatei gebildet werden kann, ist mit dem Primärspeicher 14 durch einen Kanal 20 (Fig. 2B) verbunden. Der Kanal 20 enthält mehrere Steuerungen und gehört zu der Art von Geräten, die außer ihren anderen Möglichkeiten auch geforderte Puffer- und Steuerfunktionen übernehmen können. Der Kanal 20 empfängt seriell vom Sekundärspeicher 12 angelegte Information, setzt die Bits zu Wörtern zusammen und gibt diese Wörter parallel an den Primärspeicher 14. uer Kanal 20 kann außerdem Wörter parallel vom Primärspeicher 14 empfangen und deren Bits seriell an den Sekundärspeicher 12 übertragen. Außerdem enthält der Kanal 20 geeignete Steuerschaltungen zur Erhöhung der ,Adressen, von denen Information genommen wird, oder an die Information übertragen wird und Anzeigeeinrichtungen zur Anzeige der fertigen übertragung eines Informationsblockes. Ein mit der Nummer 16 allgemein bezeichneter Assoziativspeicher (Fig. 2E und 2F) ist ebenfalls vorgesehen, der eine Eintragung für jede Blockposition im Primärspeicher 14.hat. Jede dieser Eintragungen enthält fünf Felder, die gemäß späterer genauerer Erklärung im Speicherdatenregister 446 (Fign. 2J und 2K) gezeigt sind. Diese Felder sind von links nach rechts ein Ein-Bit großes A-FeId (Änderungsfeld), welches gesetzt wird, wenn der entsprechende Block im Primärspeicher 14 in seinem Inhalt verändert wird; ein Ein-Bit großes R-FeId (Bezugsfeld), welches jedesmal gesetzt wird, wenn der entsprechende Block im Primärspeicher 14 benutzt wird und zurückgestellt wird, wenn alle Eingänge im Assoziativspeicher 16 ihr R-FeId gesetzt haben; ein ID-FeId, welches das Programm in der ZE 10 bezeichnet, in dem der Block in der zugehörigen Position im Primärspeicher 14 verbunden ist mit der Block- ' -
YO 972 094 509807/ 1071
adresse im Sekundärspeicher 12 für den Block in der entsprechenden Blockposition im Primärspeicher 14; die Blockadresse im Primärspeicher 14, der die Eintragung entspricht. Das äußerste rechte Feld einer jeden Eintragung im Assoziativspeicher 16 kann ein Festwertspeicherfeld sein; die anderen Felder im Assoziativspeicher können von Zeit zu Zeit verändert werden.
In dem in den Fign. 2E und 2F gezeigten Assoziativspeicher sind diejenigen Elemente, die mit der Zahl 412 bezeichnet sind, dieselben, wie die Elemente in Fig. 5 der US-Patentschrift Nr. 3 317 898 vom 2. Mai I967. Diese Elemente sind Assoziativspeicher-Lese/Schreib-Speicherelemente. Die Speicherlemente mit der Zahlenbezeichnung 414 im Assoziativspeicher können ebenfalls geeignete Einheiten sein, wie sie in Fig. 5 der erwähnten Patentschrift gezeigt sind, brauchen aber das Assoziativmerkmal nicht aufzuweisen, weil sie nur als Lese- und Schreib-Speicherelemente verwendet werden. Die Speicherelemente im Assoziativspeicher 16 mit der Zahlenbezeichnung 4l6 sind dieselben, wie sie in der oben erwähnten Patentschrift in Fig. 8 gezeigt sind.
Der in den Fign. 2G bis 2J gezeigte Teil bildet das Argumentenregister und die Argumentenmaske 22. Die zum Assoziativspeicher-Datenregister 446 gehörende Schaltung und Steuerung findet sich in den Fign. 2J bis 2L. Der Teil des Assoziativspeichers 16 mit der Beschriftung LR-FeId bildet den LRÜ-Kasten, wobei in diesem Ausführungsbeispiel das LRU-Kriterium angewandt wird. Der Rest des Assoziativspeichers 16 in den Fign. 2E und 2F kann treffenderweise als "Verzeichnisanlage" bezeichnet werden.
Die in den Fign. 2M und 2N enthaltene Schaltung, nämlich der Impulsgenerator 24, ist der Taktgeber, der das System nach dem Erfindungsgedanken steuert. Dieser Impulsgenerator enthält mehrere monostabile Kippschaltungen, die im eingeschalteten Zustand entsprechende Signale abgeben. Wenn eine monostabile Kippschaltung aus dem eingeschalteten in den Ruhezustand zurückgeschaltet wird,
Y0 972 W 509807/1071
d.h., wenn ihre Zeitsperre abläuft, erzeugt sie im allgemeinen ein weiteres Signal. Dieses ist das Einschaltsignal, mit dem die Zeitsteuerung des Systemes geschaltet wird. Es kann jedoch auch das Signal verwendet werden, welches beim Ablauf der Sperrzeit einer monostabilen Kippschaltung erzeugt wird.
In den Fign. 20 bis 2Z ist der "MIN-Kaaten" gezeigt, der die ΛΐΝ-Operation, d.h. den7?b-0perator gemäß obiger Beschreibung ausführt. Der MIN-Kasten empfängt seine Eingänge von der LRU-Zahl, wie sie von der Fig. 2A bis 2L gezeigten Schaltung geliefert wird und von dem Impulsgenerator 24. Der MIN-Kasten besteht aus acht Registern mit den Zahlenbezeichnungen 936, 938, 91JO, 942-, 944, 946, 948, 950, 952, 954, 956, 958, 960, 962, 964, 152, 154, 156, 158, 160, 162, 164 und 166 (Fign. 2P, 2S, und 2U). Diese Register können binär sortieren, wie es in der US-Patentschrift Nr. 3 191 156 vom 22. Juni 1965 beschrieben ist. Außerdem kann der Inhalt dieser Register wahlweise nach der Beschreibung in der US-Patentanmeldung mit der Seriennummer 258 968 vom 2. Juni 1972 verschoben werden.
Wenn im Betrieb des in Fig. 2 gezeigten Systemes die ZE 10 einen Speicherzugriff fordert, lädt sie ein Register 418 und liefert gleichzeitig einen Impuls auf eine Leitung 286. Die Leitung 286 endet in einem Kabel 420 und der Impuls wird an das ODER-Glied 422 angelegt, welches die monostabile Kippschaltung Al (Fig. 2M) einschaltet zur Abgabe des Einschaltsignales an die Leitung 288. Die Leitung 288 endet im Kabel 424, wodurch dieses Signal durch ein ODER-Glied 430 weitergeleitet wird und an dessen Ausgang die das LRU-FeId des Argumentenregisters 22 bildenden Fliflops auf lauter Nullen setzt. Das Einschaltsignal für die monostabile Kippschaltung Al auf Leitung 288 wird auch an ein ODER-Glied 432 angelegt, dessen Ausgangssignal in dieser Situation diejenigen, die Blockzahl des Argumentenregisters bildenden Flipflops auf lauter binäre Einsen setzt. Das Signal auf der Leitung 228 wird außerdem an ein Schaltglied 434 angelegt, um die Blockzahl vom Register 418 (Fig. 2A) in das Blockzahlenfeld des Argumentenre-
YO 972 094 5098 077 107 1
gisters in Fig. 21 zu leiten. Schließlich wird das Signal auf der Leitung 288 auch über das Kabel 424 und dann über das Kabel 436 an das ODER-Glied 438 (Fig. 2C) übertragen, um die Übereinstimmungsanzeiger (Fign. 2C und 2D) in der Assoziativspeichersteuerung 18 auf Eins zu setzen. Das Signal auf der Leitung 288 stellt auch das Leitungsend-Flipflop (EOL) auf Null.
Wenn die monostabile Kippschaltung Al ausgeht, wird ein Signal erzeugt, welches die monostabile Kippschaltung A2 einschaltet und auf einerLeitung 290 erscheint. Die Leitung 290 endet im Kabel 424 und das Signal auf der Leitung 290 wird über die Kabel 424, 426 und 428 an ein ODER-Glied 440 übertragen, wodurch dessen Ausgang der zugehörige Impuls ist. In diesem Zusammenhang ist zu beachten, daß die Blockzahl verbunden werden soll, um festzustellen, ob diese Blockzahl im Assoziativspeicher steht. Wie in der oben erwähnten Patentschrift erklärt und allgemein bekannt ist, werden die Übereinstimmungs-Anzeige-Flipflops in den Fign. 2C und 2ü für jedes Wort, bei dem eine Diskrepanz auftritt, zurückgestellt und sie bleiben nur in dem Fall auf Eins gestellt, d.h. eingeschaltet, wenn eine Übereinstimmung vorliegt.
Wenn die monostabile Kippschaltung A2 ausgeht, wird ein Signal erzeugt, welches eine monostabile Kippschaltung A3 einschaltet, damit sie ihr Einschaltsignal auf eine Leitung 292 gibt. Die Leitung 292 endet im Kabel 424 und das Einschaltsignal von der monostabilen Kippschaltung A3 wird über die Kabel 424, 426 und 428 übertragen, um durch eine Abfrage der Übereinstimmungs-Anzeige-Flipflops festzustellen, ob sie eingeschaltet oder zurückgestellt sind. Wenn alle Übereinstimmungs-Anzeige-Flipflops zurückgestellt sind, wird das EOL-Flipflop auf Eins geschaltet und damit angezeigt, daß im Assoziativspeicher keine Übereinstimmung besteht. Wenn das EOL-Flipflop jedoch durch das Signal von/monostabilen Kippschaltung A3 nicht eingeschaltet ist, heißt das, daß im Assoziativspeicher Übereinstimmung herrscht.
Wenn die monostabile Kippschaltung A3 ausgeht, wird ein Signal YO 972 094 5 0 9 8 0 7/1071
erzeugt, Welches' monostabile Kippschaltung A4 einschaltet und dadurch ihr Einschaltsignal auf der Leitung 294 erzeugt, die im Kabel 424 endet. Das auf dieser Leitung liegende Signal wird über die Kabel 424 und 426 an ein Schaltglied 442 (Fig. 2G) angelegt, und dadurch die ZuStandprüfung des EOL-Flipflop ermöglicht. Wenn das EOL-Flipflop auf Eins steht, erscheint ein Impuls auf der Leitung 298, wenn es auf Null steht, erscheint ein Impuls auf der Leitung 296. Die Leitungen 298 und 296 enden beide im Kabel 420. Mit dem Impuls auf der Leitung 296 wird die monostabile Kippschaltung Bl eingeschaltet. Mit dem .Impuls auf der Leitung wird die monostabile Kippschaltung Cl im Impulsgenerator 24 eingeschaltet. Der einfacheren Erklärung halber wird in der Beschreibung des in Fig. 2 gezeigten Systemes angenommen, daß im Assoziativspeicher eine Übereinstimmung vorliegt und somit werden die Vorgänge beschrieben, die folgen, wenn der Impuls auf der Leitung 296 erscheint.
Wenn die monostabile Kippschaltung Bl eingeschaltet wird, liefert sie ihr Einschaltsignal auf einer Leitung 300, welches dann über die Kabel 424, 426 und 436 an ein ODER-Glied 444 geleitet wird. Die Ausgabe des ODER-Gliedes 444 bewirkt an diesem Punkt das Lesen des übereinstimmenden Wortes im Assoziativspeicher auf das Speicherdatenregister 446 (Fign. 2K und 2L).
Es ist zu bemerken, daß der Blocknummernteil des Wortes im assoziativen Speicher 16 über, eine Sammelleitung 966 zum Register übertragen wird. Von diesem Register wird jedoch kein Gebrauch gemacht, wenn sich die Blocknummer, die aufgerufen worden ist ,im assoziativen Speicher 16 befindet.
Ein Signal auf Leitung 300 wird zum Setzen des Flipflops 862 in den 1-Zustand benutzt.. Wie nachfolgend noch in Verbindung mit der Erläuterung der M-Taktimpulse deutlich wird, ist ein derartiges Setzen notwendig, wenn die aufgerufene Blocknummer im assoziativen Speicher enthalten ist, um den LRU-Kennwert vom LRU-HaIten-Register (Fig. 2L) zu entnehmen. Das Signal auf Leitung 300 wird über Sammelleitungen 424, 426 und 428 auch zum LRU-Halten-Register
ΥΟ972094 509807/1071.
übertragen, um dieses in den O-Zustand zu setzen.
Wenn die monostabile Kippschaltung Bl abschaltet, wird ein Signal erzeugt, welches eine monostabile Kippschaltung B2 einschaltet. Das dadurch erzeugte Einschaltsignal erscheint auf einer Leitung 302, die im Kabel 424 endet. Das Signal auf der Leitung 302 wird über die Kabel 424, 426 und 428 übertragen und betätigt ein Schaltglied 448 (Pig. 2L), um den "realen Block" vom Register 446 in den linken Teil des Registers 450 (Pig. 2A) zu leiten., Das Signal auf der Leitung 302 wird auch über die Kabel 424 und 426 an ein Schaltglied 452 (Fig. 2A) angelegt, um die "Adresse im Block" vom Register 4l8 auf den rechten Teil des Registers 450 zu leiten. Außerdem wird das Signal auf der Leitung 302 über die Kabel 424, 426 und 428 an ein ODER-Glied 430 (Fig. 2J) geleitet, um das LRU-Feld der Argumentenmaske ganz auf Null zurückzustellen. Das Signal auf Leitung 302 wird auch an ein Schaltglied 454 (Fig. 2L) angelegt, um die LRU-Zanl an das LRU-Halteregister zu leiten. Da die LRU-Zahl jetzt im LRU-HaIteregister steht (Fig» 2L), kann sie jetzt als Eingabe zum MIN-Kasten benutzt werden und ihre Folge kann parallel mit der der verzeichneten Einheit weiterlaufen. Wenn die monostabile Kippschaltung B2 ausschaltet, schaltet das dadurch erzeugte Signal eine monostabile Kippschaltung B3 und eine mono3tabile Kippschaltung Ml ein. Die Arbeitsweise der monostabilen Kippschaltungen mit der Bezeichnung M wird später erklärt.
Wenn die monostabile Kippschaltung B3 eingeschaltet wird, wird das auf der Leitung 304, die in Kabel 424 endet, erscheinende Signal über die Kabel 424, 426 und 436 an das ODER-Glied 438 übertragen, dessen Ausgabe die Übereinstimmung-Anzeige-Flipflop auf Eins stellt. Das Signal auf der Leitung 304 wird auch über die Kabel 424 und 428 und die Leitung 304 an die Leitung 282 geleitet. Die im Speicherdatenregister 446 am weitesten links stehenden 8-Bits sind für die LRU-Zahl reserviert. Diese wird durch eine Zahl "1 aus 8" dargestellt. Die LRU-Zahl 1 wird z.B. dargestellt als 10000000. Die Zahl 2 wird dargestellt 01000000 usw. bis zur Zahl 8, die dargestellt werden könnte als 00000001. YO 972 09* 509807/1071
Die oberste Reihe der UND-Glieder in Fig. 2K direkt links von der Leitung 282 werden von der Nullseite eines jeden der acht Flipflop in der LRU-Zahl eingeschaltet. Die unterste Zeile von UND-Gliedern direkt links von der Leitung 282 wird von den !-Seiten dieser Flipflops eingeschaltet. Ein Impuls auf der Leitung 282 läuft also nach links weiter, bis die erste 1 auftritt.»und in dieser Verbindung wird der Schältkreis weiter nach unten fortgesetzt auf einer der Leitungen in der Gruppe mit den Bezeichnungen 456, 458, 460, 462, 464, 466, 468 und 470. Wenn die LRU-Zahl z.B. eine 6 ist, wird das UND-Glied 474eingeschaltet und ein Impuls würde auf der Leitung 460 erscheinen. Wegen der ODER-Glieder links von der Leitung 460 würden alle Leitungen 426, 464, 466, 468 und 470 aktiviert. Die aktiven Zustände dieser Leitungen werden über die Kabel 472 übertragen, um die 6 am weitesten links liegenden Flipflop der Argumentenmaske (Fign. 2G und 2H) auf 1 zu setzen.
Der Impuls auf der Leitung 304 läuft durch das ODER-Glied 475 (Fig. 2J) und stellt das Blockzahlenfeld der Argumentenmaske auf lauter Nullen. Der Impuls auf der Leitung 304 stellt auch das LRU-FeId des Argumentenregisters auf lauter Nullen zurück (Fign. 2G, 2H und 21).
Wenn die monostabile Kippschaltung B3 ausgeht, wird dadurch ein Signal auf der Leitung 306 erzeugt, welches über die Kabel 424, 426 und 428 an das ODER-Glied 440 (Fig. 2J) weitergeleitet wird, dessen Ausgabe der Assoziierungsimpuls ist.
Der Assoziierungsimpuls stellt die Übereinstimmungsanzeige für alle Wörter im Assoziativspeicher zurück, deren LRU-Zahlen gleich oder kleiner sind als die LRU-Zahl im Datenregister 446. Diese Operation wird zu diesem Zeitpunkt ausgeführt, weil alle LRU-Zahlen auf die nächste erhöht werden müssen. In diesem Zusammenhang ist zu beachten, daß angelegte Schiebeimpulse (Fig. 2C und 2D) durch den rückgestellten Zustand der übereinstimmungs-Anzei-
Ϋο 972 094 509807/1071
ge-Flipflops eingeschaltet werden. Die Schiebeoperation erfolgt mit den Speicherelementen 4O6, 4o8 und 410.
Zum Verständnis der Schiebeoperation wird auf die Fign. 3A, 3B und 3C verwiesen. In Fig. 3A ist ein Ausführungsbeispiel des Speicherelementes 406 gezeigt. In diesem Element ist das Flipflop 480 das Informationsbit, und das Flipflop 486 ist vorgesehen, um Nullen von links einzuleiten. Der erste Schiebeimpuls wird auf die Leitung 476 geleitet und setzt das Flipflop 486 auf Null. In der Fig. 3B ist ein geeignetes Ausführungsbeispiel eines Speicherelementes 408 gezeigt, in dem das Informationsbit das Flipflop 482 und das Flipflop 488 ein Zwischenflipflop ist. Der erste Schiebeimpuls auf der Leitung 476 leitet den Inhalt des Flipflop 480 (Fig. 3A) auf das Flipflop 488 (Fig. 3B). In Fig. 3C ist ein geeignetes Beispiel für ein Speicherelement 410 gezeigt, in dem das Flipflop 484 das Informationsbit und das Flipflop 490 ein Zwischenflipflop ist. Bei Auftreten dieses ersten Schiebeimpulses auf der Leitung 476 wird der Inhalt des Flipflops 482 (Fig. 3B) auf das Flipflop 490 im Speicherelement 410 (Fig. 3C) geleitet. Der zweite Schiebeimpuls erscheint jetzt auf der Leitung 478, die im Speicherelement 4O6 (Fig. 3A) den Inhalt des Flipflops 486 auf das Flipflop 480 leitet. Ähnlich leitet der Schiebeimpuls auf der Leitung 478 im Speicherelement 4O8 (Fig. 3B) den Inhalt des Flipflops 488 auf das Flipflop 482 und im Speicherelement 4l0 (Fig. 3C) den Inhalt des Flipflops 490 auf das Flipflop 484. Auf diese Weise wird die einzige 1 in der LRU-Zahl um eine Position nach rechts verschoben. In die äußerste linke Position wird immer eine 0 eingegeben.
Wenn die monostabile Kippschaltung B4 ausgeht, wird dadurch ein Signal erzeugt, welches die monostabile Kippschaltung B5 einschaltet und dieses Einschaltsignal erscheint auf der Leitung 3O8, die im Kabel 424 endet. Das Signal auf der Leitung 308 wird über die Kabel 424, 426 und 436 an das ODER-Glied 492 geleitet, dessen Ausgang der erste Schiebeimpuls ist.
Wenn die monostabile Kippschaltung B5 ausgeht, schaltet das da-
YO 972 094
5Q9807/ 1071
-.45 -
durch erzeugte Signal die monostabile Kippschaltung B6 ein und erzeugt ein Signal auf der Leitung 310, welches über die Kabel 424, 426 und 436 an das ODER-Glied 494 übertragen wird, dessen Ausgabe an diesem Punkt der zweite Schiebeimpuls ist.
Wenn die monostabile Kippschaltung Bö ausgeht, wird die monostabile Kippschaltung B7 eingeschaltet und erzeugt ein Signal auf der Leitung 312, welches über die Kabel 424, 426 und 436 an ein ODER-Glied 438 übertragen wird, dessen Ausgabe die Übereinstimmungs-Anzeige-Flipflop auf 1 setzt« Das: Signal auf der Leitung 312 wird auch an ein ODER-Glied 430 angelegt, dessen Ausgabe das LRU-FeId der Argumentenmaske auf 0 zurückstellt. Schließlich wird das Signal auf der Leitung 312 auch noch an das ODER-Glied 432 angelegt, dessen Ausgabe das Blockzahlennummernfeld der Argumentenmaske auf lauter Einsen setzt.
Wenn die monostabile Kippschaltung B7 ausgeht, schaltet das dadurch erzeugte Signal eine monostabile Kippschaltung BÖ ein, die ein Signal auf der Leitμng 314 erzeugt, welche über die Kabel 424, 426 und 428 an ein ODER-Glied 440 (Fig. 2J) angelegt wird zur Erzeugung des Assoziationsimpulses. Mit der Assoziierung zu diesem Zeitpunkt sollen alle Übereinstimmungs-Anzeiger mit Ausnahme des einen zurückgestellt werden, der zu dem Wort im Assoziativspeicher gehört, welches dieselbe Blockzahl enthält, die auch im Register 446 steht. Diese Blockzahl existiert gleichzeitig im Argumentenregister.
Wenn die monostabile Kippschaltung Be ausgeht, wird eine monostabile Kippschaltung B9 eingeschaltet und erzeugt ein Signal auf der Leitung 316, welches über das Kabel 428 an das ODER-Glied 496 übertragen wird, dessen Ausgabe das LRU-FeId im Register 446 auf 10000000 setzt. Wenn die ZE 10 einen Speicherzugriff anfordert, liefert sie auch Information darüber, welcher Block zu verändern ist. Durch diese gelieferte Information wird das Änderungs-Flipflop (Fig. 2A) auf 1 gestellt, wenn der Block zu verändern ist oder das Änderungs-Flipflop wird auf 0 gestellt,
YO 972 094
509807/1071
wenn der Block nicht zu verändern ist. Ein Signal auf der Leitung 316,erzeugt während der Einschaltzeit der monostabilen Kippschaltung B9» wird auch an das Schaltglied 498 (Fig. 2A) angelegt, um den Zustand des Änderungs-Flipflops zu sichern. Wenn dieses Flipflop auf 1 steht, erscheint ein Impuls auf der Leitung 31Ö, wenn das Änderungs-Flipflop jedoch auf 0 steht, erscheint ein Impuls auf der Leitung 320. Die Leitungen 318 und 320 enden im Kabel 420. Ein Impuls auf der Leitung 318 schaltet die monostabile Kippschaltung BIO ein und ein Impuls auf der Leitung 320 eine monostabile Kippschaltung BIl.
Wenn das Α-Bit des Registers 446 auf 1 gesetzt werden muß, geschieht das durch einen Impuls auf der Leitung 332. Der Impuls auf der Leitung 324 wird an ein ODER-Glied 498 angelegt, mit dessen Ausgabe der Inhalt des Registers 446 in den Assoziativspeicher zurückgeschrieben wird.
In der bisherigen Beschreibung des Ausführungsbeispieles der Erfindung wurde die Arbeitsweise der Verzeichniseinheit und des LRU-Kastens gezeigt, wenn die angeforderte Blockzahl im Assoziativspeicher steht. Die LRU-Zahl des gewählten Wortes ist jedoch, wie gesagt, immer auf 1 gesetzt und die LRU-Zahlen, die kleiner sind als das gewählte Wort im Assoziativspeicher, werden um 1 erhöht.
Es folgt die Beschreibung der Arbeitsweise der Verzeichniseinheit und des LRU-Kastens, wenn die gewünschte Blockzahl nicht im Assoziativspeicher steht. In dieser Situation tritt ein Seitenaustausch auf, der durch das Signal auf der Leitung 294 erkannt wird, mit dem der Zustand des EOL-Flipflop geprüft wird. Der eingeschaltete 1-Zustand des EOL-Flipflop löst ein Signal auf einer Leitung 298 aus, welches eine monostabile Kippschaltung Cl einschaltet. Der Einschaltzustand der monostabilen Kippschaltung
Cl erzeugt ein Signal auf der Leitung 326 und von dort auf der Leitung 456. Durch den Betrieb der in Reihe geschalteten ODER-Glieder erscheint das Einschaltsignal der monostabilen Kippschaltung
509807/1071
Cl auch auf den Leitungen 458, 460, 462, 464, 466, 468 und 470 und esetzt das LRU-FeId der Argumentenmaske (Pign. 2G-2J) auf lauter Einsen. Das Signal auf der Leitung 326 wird auch an das ODER-Glied 475 angelegt und stellt das Blockzahlenfeld der Argumentenmaske auf lauter Nullen zurück. Außerdem setzt das Signal auf der Leitung 326 das LRU-FeId des Argumentenregisters auf den Wert 00000001. Weiterhin wird das Signal auf der Leitung 326 an ein ODER-Glied 438 angelegt, dessen konsequente Ausgabe die übereinstimmungs-Anzeige-Flipflops auf 1 setzt. Die Schaltungen sind jetzt zur Assoziierung einer LRU-Zahl von acht angestellt, da dieses dasjenige Wort im Assoziativspeicher ist, welches durch einen Block ersetzt werden muß.
Das Signal auf Leitung 326 dient auch zum Rückstellen des Flipflop 862 in den O-Zustand. Eine solche Einstellung ist notwendig bei Auftreten eines Seitenaustausches, weil der LRU-Wert aus dem Register 970 zu entnehmen ist.
Wenn die monostabile Kippschaltung Ul ausgeht, schaltet das dadurch erzeugte Signal eine monostabile Kippschaltung C2 ein, die dann ein Signal auf der Leitung 328 erzeugt. Das Signal auf der Leitung 328 wird an ein ODER-Glied 440 angelegt, und das Ausgangssignal dieses ODER-Gliedes 440 funktioniert als Assoziierungsimpuls. Durch die von ihm ausgelöste Assoziierung werden alle Übereinstimmungs-Anzeiger im Assoziativspeicher zurückgestellt mit Ausnahme desjenigen Anzeigers, der zu dem Wort gehört, das den LRU-Wert acht hat. Jetzt müssen die LRU-Zahlen erhöht werden, deren Wert kleiner als acht ist.
Wenn die monostabile Kippschaltung C2 ausgeht, schaltet das dadurch erzeugte Signal eine monostabile Kippschaltung C3 zur Erzeugung eines Signales auf der Leitung 330 ein. Das Signal auf der Leitung 330 wird an ein ODER-Glied 492 (Fig. 2C) angelegt,-dessen resultierende Ausgabe als erster Schiebeimpuls wirkt.
Wenn die monostabile Kippschaltung C3 ausgeht, schaltet das da-
YO 972 094
5 0 9 8 0 7/1071
durch erzeugte Signal die monostabile Kippschaltung C4 ein, die dann ein Signal auf einer Leitung 332 erzeugt. Das Signal auf der Leitung 332 wird an ein ODER-Glied 49^ angelegt (siehe Fig. 2D), dessen sich dann ergebender Ausgang als zweiter Schiebeimpuls wirkt.
Wenn die monostabile Kippschaltung C4 ausgeht, schaltet das dadurch erzeugte Signal eine monostabile Kippschaltung C5 ein, die sein Signal auf der Leitung 331I erzeugt. Dieses Signal wird an das ODER-Glied 444 angelegt, dessen sich dann ergebender Ausgang das übereinstimmende Wort aus dem Assoziativspeicher in das Datenregister 446 liest.
Wenn die monostabile Kippschaltung C5 ausgeht, schaltet das dadurch erzeugte Signal die monostabile Kippschaltung C6 ein, die dann ein Signal auf der Leitung 336 erzeugt, welches an das ODER-Glied 496 angelegt wird (Fig. 2J). Die sich daraus ergebende Ausgabe des ODER-Gliedes 496 schaltet den LRU-Abschnitt des Registers 446 auf 10000000. Außerdem wird das Signal auf der Leitung 336 an ein Schaltglied 499 (Fig. 2K) angelegt, um den Zustand des "Α-Bit" im Register 446 zu prüfen. Wenn in dieser Prüfung festgestellt wird, daß das "Α-Bit" auf "1" steht, erscheint ein Signal auf der Leitung 340, wenn das Α-Bit jedoch auf "0" steht, erscheint ein Signal auf der Leitung 338. Die Leitungen 338 und 340 enden in den Kabeln 500 und 420. Mit dem Signal auf der Leitung 338 wird die monostabile Kippschaltung C7 und mit dem Signal auf der Leitung 340 die monostabile Kippschaltung CIl eingeschaltet.
Wenn angenommen wird, daß das Α-Bit auf "0" steht, dann erscheint also ein Signal auf der Leitung 338 und schaltet die monostabile Kippschaltung CJ ein, wodurch ein Signal auf der Leitung 342 erzeugt wird, welches an das ODER-Glied 502 (Fig. 2A) angelegt wird. Die Ausgabe des ODER-Gliedes 502 wird an ein Schaltglied 504 angelegt, dessen auf diese Weise erfolgte Betätigung die Blockzahl vom Register 4l8 in das Austauschadreßregister leitet. Das Signal auf der Leitung 342 wird außerdem an
YO 972 094
509807/1071
ein ODER-Glied 506 (Fig. 2L) angelegt, dessen Ausgang an ein Schaltglied 508 angelegt wird. Durch Betätigung des. Schaltgliedes 508 wird der Inhalt des Realblockfeldes des Registers 446 in das primäre Adreßregister (Fig. 2B) geleitet. Das Signal auf der Leitung 446 wird außerdem an ein Schaltglied 510 angelegt (Fig. 2L), dessen Betätigung die Blockzahl vom Register 418 (Fig. 2A) in das Blockzahlenfeld des Registers 446 leitet. Außerdem wird das Signal auf der Leitung 342 an ein. ODER-Glied 512 geleitet, dessen Ausgabesignale das Α-Bit des Registers 446 auf "0" zurückstellen. Außerdem wird das Signal auf der Leitung 342 an den Austauscheingang für die Kanalsteuerungen 20 (Fig.2B) angelegt. Schließlich setzt das Signal auf der Leitung 446 das Flipflop 514 (Fig. 2B) auf "1".
Wenn die monostabile Kippschaltung Cf ausgeht, wird dadurch die monostabile Kippschaltung C8 eingeschaltet,, die ein Signal auf der Leitung 344 erzeugt, welches an ein ODER-Glied 498 (Fig. 2D) angelegt wird. Das resultierende Ausgabesignal des ODER-Gliedes 498 schreibt den Inhalt des Datenregisters 446 in die richtige Stelle im Assoziativspeicher.
Wenn die monostabile Kippschaltung C8 ausgeht, wird das dadurch erzeugte Signal durch ein ODER-Glied 522 übertragen und schaltet eine monostabile Kippschaltung C9 ein, die ein Ausgabesignal auf die Leitung 346 gibt. Dieses Signal wird an ein Schaltglied 518 (Fig. 2B) angelegt, durch dessen Betätigung der Zustand des Flipflops 514 geprüft wird. Wen,n das Flipflop 514 auf" "1" steht, erscheint ein Signal auf der Leitung 360, wenn es auf "0" steht, erscheint ein Signal, auf der Leitung 362.
Mit einem Signal auf der Leitung 36O wird die monostabile Kippschaltung ClO eingeschaltet und das Signal auf der Leitung 362 wird durch ein ODER-Glied 422 weitergeleitet zum Einschalten der monostabilen Kippschaltung Al. Das Einschaltsignal von der monostabilen Kippschaltung ClO wird nur zur Verzögerung benutzt, und wenn die Zeitsperre der monostabilen Kippschaltung ClO abgelaufen ist, wird ein Signal erzeugt, welches über das ODER-Glied
YO 972 094
509807/1071
522 läuft und die monostabile Kippschaltung C9 wieder einschaltet.
Wenn das Schaltglied 499 (Pig. 2C) durch das Signal auf der Leitung 366, welches anzeigt, daß das A-Flipflop zu diesem Zeitpunkt auf "1" steht, betätigt wird, erscheint ein Signal auf der Leitung 340, welches die monostabile Kippschaltung CIl einschaltet zur Erzeugung eines Signaies auf der Leitung 348. Das Signal auf der Leitung 348 wird dann an ein Schaltglied 524 (Pig. 2L) angelegt, dessen Betätigung den Inhalt des Blockzahlenfeldes des Datenregisters 446 in das Schreib-Adreßregister (Fig. 2B) leitet,
Wenn die monostabile Kippschaltung CIl ausgeht, schaltet das dadurch erzeugte Signal eine monostabile Kippschaltung C12 ein, die ein Signal auf der Leitung 350 erzeugt. Dieses Signal wird an ein ODER-Glied 502 (Fig. 2A) angelegt, dessen Ausgang an ein Schaltglied 504 geleitet wird, durch dessen Betätigung die Blockzahl aus dem Register 4l8 in das Austauschadreßregister geleitet wird. Das Signal auf der Leitung 350 wird auch an ein ODER-Glied 506 angelegt, dessen Ausgang dann ein Schaltglied 508 betätigt, wodurch der Inhalt des realen Blockfeldes des Registers 446 in das primäre Adreßregister (Fig. 2B) geleitet wird. Außerdem wird das Signal auf der Leitung 350 an ein Schaltglied 510 (Fig. 2L) angelegtjund durch dessen Betätigung wird der Inhalt der Blockzahl aus dem Register 418 (Fig. 2A) in das Datenregister 446 geleitet (Fign. 2K und 2L). Außerdem wird das Signal auf der Leitung 350 an das ODER-Glied 512 angelegt, dessen Ausgabe das "Α-Bit" des Registers 446 auf "0" setzt. Das Signal auf der Leitunt 350 wird außerdem an den Eingang "Rückschreiben und Ersetzen" für die Kanalsteuerung 20 (Fig. 2B) angelegt. Schließlich schaltet das Signal auf der Leitung 350 noch das Flipflop 516 (Fig. 2B) auf "1".
Wenn der monostabile Multivibrator C12 in den Aus-Zustand zurückschaltet, wird ein Signal auf Leitung 858 erzeugt. Dieses Signal gelangt über die ODER-Schaltung 856 und eine Leitung 86O zur zentralen Verarbeitungseinheit 10 und veranlaßt dort die Aus-YO 972 094
509807/1071
führung des Speicherverwaltungsprogramms. Beim Ausschalten des monostabilen Multivibrators C12 wird auch das Folgesignal zum Einschalten eines monostabilen Multivibrators C13 ausgelöst, der ein Signal auf Leitung 352 erzeugt. Dieses Signal gelangt zur ODER-Schaltung *I98, deren Ausgangssignal ein Einschreiben des Inhalts des Datenregisters 446 (Fign. 2K und 2L) in den Assoziativspeicher bewirkt. ·
Wenn die monostabile Kippschaltung CI3 ausgeht, wird das dadurch erzeugte Signal durch ein ODER-Glied 526 geleitet und schaltet eine monostabile Kippschaltung Cl1I ein, die ein Signal auf der Leitung 354 erzeugt. Dieses Signal wird an ein Schaltglied 520 (Fig. 2B) angelegt, durch dessen Betätigung der Zustand des Flipflop 516 geprüft wird. Wenn das Flipflop auf "1" steht, erscheint ein Signal auf der Leitung 356, wenn es auf "0" steht, erscheint ein Signal auf der Leitung 358. Mit dem Signal auf der Leitung 356 wird eine monostabile Kippschaltung CI5 eingeschaltet. Ein Signal auf der Leitung 358 läuft durch ein ODER-Glied 422 und schaltet eine monostabile Kippschaltung Al ein. Die monostabile Kippschaltung CIS dient zur Verzögerung und wenn sie abschaltet, wird ein Signal erzeugt, welches durch das ODER-Glied 526 läuft und die monOstabile Kippschaltung Cl4 einschaltet.
Die Fign. 3A bis 3D zeigen in der Zusammengehörigkeit gemäß Fig. 3 eine geeignete Schaltung der Stufen 4O6, 4o8, 410, 414, 4l2 und 4l6 und geben an, wie diese Stufen untereinander verbunden sind. ' ·
Bisher wurde die Arbeitsweise der Verzeichniseinheit und des LRU-Blocks beschrieben, wenn eine Seitenausnahme auftritt. Bei diesem Betrieb kehrt die Steuerung zur Signalfolge zurück, die eingeleitet wird mit dem Einschalten der monostabilen Kippschaltung Al, und diese Folge kann jetzt wirksam werden, da der geforderte Block im Primärspeicher vorhanden ist. Zu diesem Zeitpunkt befindet sich die die Seitenausnahme auslösende Seite
Yo 972 094 '
509807/1071
im Primärspeicher.
Die Stufen 264 und 266 der Aufzeichnungseinrichtung (Fig. 2S) sind in Fig. 4 in Form der Schaltung 1100 und 1101 dargestellt. In der Stufe 264 verläuft die Sammelleitung 1101 weiter zum Decodierer 981 und von dort zur UND-Schaltung 982. Von der Stufe 266 verläuft die Sammelleitung 1101 zum Decodierer 929 und von dort zur Torschaltung 928.
Die Stufen 822, 824, 826 und 828 können so ausgeführt werden, wie es die Schaltung 1100 von Fig. 4 zeigt. Die Stufe 822 unterscheidet sich von der Stufe 824 dadurch, daß eine Torschaltung II07, die zu der Gruppe von durch die Flipflops 866 bis 894 geöffneten Toren gehört, ein Endtor dieser Serie darstellt. Die Stufe 826 entspricht der Stufe 822, enthält jedoch nicht die Leitung 1103 und IIO5. In gleicher Weise entspricht die Stufe der Stufe 824, aber enthält nicht die Leitungen 1105 und 1103.
Das Signal auf einer der Leitungen 974 oder 976 gelangt zur ODER-Schaltung 978, über die der monostabile Multivibrator Ml eingeschaltet wird. Als Folge hiervon wird ein Signal auf der Leitung 364 erzeugt, das zu einer UND-Schaltung 98O gelangt (Fig. 20). Wenn der LRU-Wert "1" ist, wird die Leitung 530 (Fig. 2D) signalführend. In dieser Situation ist die UND-Schaltung 980 nicht geöffnet, und auf der Leitung 392 erscheint kein Ausgangssignal.
Wenn der LRU-Wert "2" vorliegt, ist die Leitung 532 signalführend. Wenn in dieser Situation das Register 936 den Wert "2" enthält, wird die UND-Schaltung 982 geöffnet und liefert ein Ausgangssignal. Dieses Signal zeigt an, daß die UND-Schaltung 98O gesperrt bleibt und daher kein Signal auf der Leitung 392 erscheint.
Wenn die Leitung 532 signalführend ist, das Register 936 jedoch keine "2" enthält, bleibt die UND-Schaltung 982 gesperrt und liefert kein Ausgangssignal. Dies hat zur Folge, daß die UND-
YO 972 094
509807/1071
Schaltung 98O ein Signal an die Leitung 392 abgibt. Für alle anderen Fälle, in denen LRU-Werte größer als 3 sind, wird die Leitung 392 jeweils signalführend als Resultat der Testoperation der UND-Schaltung 98O.
Das Signal auf Leitung 392 wird zum Einschalten des monostabilen Multivibrators M2 benutzt, der daraufhin.ein Signal auf Leitung 366 erzeugt. Dieses Signal dient zur Rückstellung der Flipflops 866, 868, 870, 872, 874, 876, 868, 88O, 882, 884, 886, 888, 890, 892 und 894 (Fign. 2X, .2Y und 2Z) in ihren 0-Zustand.
Beim Einschalten des monostabilen Multivibrators M2 wird ein Signal erzeugt, das den monostabilen Multivibrator M3 einschaltet. Dieser liefert daraufhin ein Signal auf Leitung 368,, das zu den UND-Schaltungen 984 und 986 (Fig. 20) gelangt. Die UND-Schaltung 984 ist geöffnet, wenn der Flipflop 862 in seinem 1-Zustand steht. Die UND-Schaltung 984 erzeugt daraufhin ein Ausgangssignal, das eine Torschaltung 246 öffnet. Wenn der Flipflop 862 im 0-Zustand steht, liefert die UND-Schaltung 986 ein Ausgangssignal, um eine Torschaltung 926 zu öffnen. Es sei daran erinnert, daß der Flipflop 862 in den l-Zustand gesetzt wird, wenn sich die gesuchte Blocknummer in der Aufzeichnungseinrichtung befindet. Wenn dies nicht der Fall ist, wird der Flipflop 862 auf "0" gestellt*
Nachfolgend wird auf Fig. 5 bezug genommen, worin ein Zahlenbeispiel zur Erläuterung der ^ Arbeitsweise der Schaltungen von Fig. 20 bis 2Z dargestellt ist. Die äußerste linke Spalte von Fig. 5 gibt die an den dargestellten Schaltoperationen beteiligten Register 936 bis 964 an. Die nächste Spalte enthält die entsprechenden LRU-Werte als Adressen dieser Register. Die mit "alt" bezeichnete Spalte zeigt den Inhalt des MMC-Stapels vor dem Auftreten eines Seitenaufrufes. Die mit "neu" bezeichnete Spalte zeigt den Inhalt der Register 936 bis 964 als Resultat der Operation der Operatoreinheit 21, wenn die aufgerufene Seite den LRU-Benutzungskennwert 7 besitzt. Wenn dies der Fall ist, wird das siebente Register im Stapelspeicher I5 adressiert. In diesem Zusammenhang
YO 972 094 ' ' ■ ■
5098 07/1071
ist zu bemerken, daß die Register 936 bis 964 den Adressen 2 bis 16 im MMC-Stapelspeicher 15 entsprechen. Das durch die Adresse 1 dargestellte Register enthält konstant den MMC-Wert 1 und bleibt daher in der Tabelle von Fig. 5 unbeachtet. Die äußerste rechte Spalte von Fig. 5 gibt die an den Schaltoperationen beteiligten Steuer-Flipflops 866 bis 894 an.
Nachfolgend soll die Operation der Schaltung in den Fign. 2 0 bis 2Z bei der Ausführung des Zahlenbeispiels von Fig. 5 betrachtet werden, worin die aufgerufene Seite den LRU-Benutzungskennwert 7 besitzt, so daß die Leitung 906 (Fig. 2P) signalführend ist. Letzteres hat zur Folge, daß auch die Leitung 742 signalführend ist, welches der Sortierausgang des Registers 946 (Fig. 2T) ist. Dies bedeutet, daß alle Register 946 bis 964 in eine erste Sortieroperation einbezogen werden. Der kleinste Wert in diesen Registern ist die Zahl 3 im Register 952. Da die Leitung 742 (Fig. 2P) signalführend ist, werden alle unterhalb dieser Leitung befindlichen Leitungen, nämlich die Leitungen 744, 746 bis 760 ebenfalls signalführend aufgrund der Serienschaltung der UND- und ODER-Schaltungen in den Fign. 2 0 bis 2R. Die UND-Schaltungen bis 1016 in den letztgenannten Figuren sind ursprünglich alle geöffnet, da die Flipflops 868 bis 894 (Fign. 2X, 2Y und 2Z) sich anfangs im O-Zustand befinden. Da das Register 952 den kleinsten Wert enthält, ist die Leitung 749 (Fig. 2U) signalführend. Hierdurch wird eine Umschaltung des Flipflops 882 in den 1-Zustand bewirkt, wodurch die Leitung 778 inaktiv wird, was wiederum zur Folge hat, daß auch die Leitungen 748 bis 76O nicht länger signalführend bleiben.
Aus Fig. 5 ist ersichtlich, daß es als nächstes notwendig ist zu ermitteln, welches der Register 946, 948 und 950 den kleinsten Wert enthält. Dieser kleinste Wert ist der Wert 9 im Register 946, was durch ein Signal auf der Leitung 743 (Fig. 2T) angezeigt wird. Hierdurch wird der Flipflop 876 (Fig.Y) in den 1-Zustand gestellt, so daß die Leitung 772 nicht länger signalführend bleibt. Hierdurch wird die UND-Schaltung 984 (Fig. 20) gesperrt. Dies ist jedoch zum vorliegenden Zeitpunkt nicht von YO 972 094
509807/1071
Bedeutung, da sich keine aktive Leitung oberhalb der Leitung 9O6 befindet. Der signalführende Zustand der Leitung 906 hat auch zur Folge, daß die Leitungen 712, 710, 708, 706 und 704 (Fign. 20 und.2P) signalführend werden, was zu einer Einstellung der Flipflops 866, 868, 870, 872und 874 (Fign. 2X und 2Y) in den 1-Zustand führt.
Wenn der monostabile Multivibrator M3 in den Aus-Zustand übergeht, wird ein Signal erzeugt, das den monostabilen Multivibrator M4 einschaltet. Das hieraus auf Leitung 932 resultierende Signal stellt den ersten Schiebeimpuls für die Register 936» 938, 940, 942, 944, 946, 948, 950, 952 und 954 dar.
Wenn der monostabile Multivibrator M4 ausgeschaltet wird, gelangt ein Signal zum monostabilen Multivibrator M5 und schaltet diesen in den Ein-Zustand. Hierbei wird ein Signal auf Leitung erzeugt, das als zweiter Schiebeimpuls zu den Registern 936 bis 964 gelangt.
Diese zwei Schiebexmpulse bewirken, daß der Inhalt der Register 952 bis 935 in der folgenden Weise verschoben wird: Der Inhalt des Registers 936 gelangt in das Register 938, der Inhalt des Registers 938 in das Register 940, der Inhalt des Register in das Register 942, der Inhalt des Registers 942 in das Register 944, der Inhalt des Registers 944 in das Register 946, der Inhalt des Register 946 in das Register 952. Der Inhalt der Register 948, 950, 954, 956, 958, 960, 962 und 964 bleibt unverändert. Die sich nach diesen Operationen ergebende Werteanordnung ist in der mit "neu" bezeichneten Spalte von Fig. 5 dargestellt.
Wenn der monostabile Multivibrator M5 in den Aus-Zustand zurückgeht, wird der monostabile Multivibrator M6 eingeschaltet. Hierdurch wird ein Signal auf Leitung 930 erzeugt, das zur Torschaltung 928 (Fig. 2X) gelangt. Der Inhalt des Registers 936 wird durch den Decodierer 929 decodiert und dient als eines der Ausgangssignale der Torschaltung 928 zur Inkrementierung eines YO 972 094
50 98 077 107 1
der Zähler ZR2 bis ZR16 (Pign. 2X, 2Y und 2Z), in denen die Häufigkeiten des Auftretens der verschiedenen MMC-Kennwerte zu Effektivitäts-Meßzahlen akkumuliert werden.
Die folgende Tabelle zeigt die Beziehung der Operationen unter Steuerung des A-Taktes.
γθ 972 094
509807/ 1071
Hon os t ab i le
Kipps ch altung
Einschaltbedingungen
eingeschaltet ausgeführte
Funktion(en)
ausgeschaltet ausgeführte Funktion (cm)
Λ1
Λ2
Λ 3
SpeicIiGirzugriffsanförderung "durch SE (Signal auf Leitung 286). Nullstellung dos Flipflop 516.
Einschalten der monostabilen Kippschaltung Al
Einschalten der rconostabilen Kippschaltung A2
Ausschalten dar iponostabilcn Kippschaltung Λ3. Rückstellung Einschalten ä&3 LRU-Ffildes c?<?.r monostt der Argumenten bilen Kippmaske auf 11O". schaltung ^ ■Schalten--do-r Blockzahl der Argumentenmaske auf lauter Einsen. Leiten der Blockzahl aus Rogistesr 418 im Blockzahlenfeld des Argumentenregisters. Schalten der Oherein-S tinnnungs anzo iauf Hl". Rückstellen des .IOL-Flipflop auf "0".
Einschalten der ir.onostabilen Kippschal tung A3.
Einschal tung der reonostabuen Kippschal· -tung A4
Erzeugt A
rungßoignal für Assoziierung auf dar Blockzahl
Abfrage der übereinstimmungs-Anzeigaflipflops auf 'Einschaltung oder Nichteinschaltung das IOL-Flipflop auf "1"
Prüfung der Sehaltsteilung des lOL-Flip-Flop
YO 972 094
509807/1071
Die folgende Tabelle zeigt die Operationsbeziehungen unter Steuerung des B-Taktes.
Monostabile Einschalt-Kippschaltung bedingungen
Nullstellung des EOL-Plip flop
Ausschalten der monostabilen Kippschaltung Bl
Ausschalten der monostabilen Kippschaltung B2
eingeschaltet ausgeführte Funktion(en)
ausgeschaltet
ausgeführte
Funktion(en)
Lesen des über- Einschalten der einstimmungswor- monostabilen tes im Assoziativ-Kippschaltung speicher in das B2. Speicherdatenregister 446. Rückstellung des LRU-Halteregisters auf 11O".
Leiten des realen Einschalten Blockes aus dem der monostabi-Speicherdatenregilen Kippschalster in den linken tung B3. EinTeil des Speicher- schalten der adreßregisters 450 monostabilen des Primärspei- Kippschaltung ehers. Leiten der Ml. "Adresse im Block" aus Register 4l8 im rechten Teil des Speicheradreßregisters 450. Rückstellung des LRU-Peldes der Argumentenmaske auf Nullen. Leiten der LRU-Zahl auf Speicherdatenregister im LRU-HaI-teregister. Setzen des Flipflop 862 in den Einszustand.
Setzen der überein- Einschalten stimmungsanzeigeflip-der monistaflops auf "1". Set- bilen Kippzen des linken Tel- Schaltung B4. les des LRU-Feldes der Argumentenmaske auf dieselbe Anzahl von Einsen wie die LRU-Zahl im Assoziativspeicher MDR(Speicherdatenregister) enthält. Rückstellung der Blockzah- Schaltung B4
YO 972 094
50980 77-1071
Monostabile
Kippschaltung
Einsehaltbedingungen eingeschaltet
ausgoführte
Funktion(on)
Ausschalten moncstabilen Kippschaltung B3
Ausschalten der monostabilen Kippschaltung·" B4.
Ausschalten dör monostabil on Kippschaltung B5. ausgeschaltet ausgeführte Funktion(en)
lenfeldes dor
Ar gutrein tenrnask«s auf lauter
HuIlen. RUcksteilung des
LRü-Feldes,- das
Ar gurtvan ten f c 1-des auf lauter
Nullen.
Lieferung des Einschalten der . Ässoziationsim- jnonostabileri Kipp pulses zur RiIck-3ehaltung B5. Stellung der
Uberelns tirrrounersanzeiger für alle
i/örte im Assoziativspeicher, de·^·
rtfm IiRü-Zahlen
kleiner gleich
dar LRU-Zahl im
Datenregister 446
sind.
Lieferung des er- Einschalten sten Schicbeimpul- dar monostases. . bilftn Kipp
schaltung B6.
Lieferung des
zweiton Schiebeimpulses
Einschalten der nonostabilfin Kippschaltung B7.
Aussclialten der Setzen der Uber-monostabilsn Kipp- einstinrnungsaneclialtung B6. zeige-Flipflops
auf "l". Rückstellung des LRU-feldes dor Argumentenir.aske auf lauter Nullen. Setzen des ElockzalilenfeldQs dar .;.·■- Argumenten inaske
auf lauter Einsen.
Einschalten der !».onostabilen Kippschaltung BS.
YO 972 094
509807/107T BAD
Monostabile
Kippscha11un g
Einschaltbedingungen eingeschaltet ausgeführte Funktion(en)
ausgeschaltet ausgeführte Funktion(en)
D8
B9
Ausschalten dor rnonostabilen Kippschaltungen B7
Ausschalten dor monostabilen Kippschal tun α B6 Lieferung dos A3- Jilins ehalten der soziationsinipul- rponos tab ilen Kipp-SGG schaltung B9
Setzen des !..Rufe Idas des Assoziativsppicherdatcnregisters auf 10OCX)OOO. Γ rufen der Stellung ties Änderungsflipflop.
BIO
Einerstellung des Änderungr» flipflop
Setzen des Zi1-des AssoEiativspeichcrdatenregistora auf "1".
Nullstellung Schreiben des Indes Ändarungs-haltes dos Assoaiflipflop ativspeicherdaten-
registers in den Assoziativspeicher zurück.
Die folgend« Tabelle zeigt die Beziehungen der Operationen unter Steuerung das C-Takt<?.6.
Monostabile
Kippschaltung
Einschaltbedingungen
Cl
Einerstellung dos IOL-Plipflop
eingeschaltet ausgeführte Funktion(en)
Setzen des LRU-Feldos eier Arguinsntenmaske auf lauter Einsen. Die Rückstellung des Blockζahlonfeldes der Argumöntenmaske auf lauter Nullen.
ausgeschaltet ausgeführte Funktion(en)
Einschalten
der inonostabllsn
Kippscii altung C2,
YO 972 094
509807/1071
BAD ORIGINAL
Monostabile Einschalt-Kippschaltung bedingungen
eingeschaltet
ausgeführte
Funktion(en)
Setzen der übereinstimmungsanzeige flipflops auf "1". Setzen des Flipflop 862 in den Nullzustand.
ausgeschaltet ausgeführte Punktion(en
Ausschalten der monostabilen Kippschaltung Cl
Ausschalten der monostabilen .Kipp-<schaltung C2.
Ausschalten der monostabilen Kippschaltung C3.
Ausschalten der monostabil en Kippschaltung C4. Lieferung des Assoziationsimpulses
Einschalten der monostabilen Kippschaltung C3
Ausschalten der mono stabilen Kippschaltung C5 Lieferung des Einschalten der moersten Schiebe-nostabilen Kippimp.ulses schaltung C4.
Lieferung des Einschalten der mozweiten Schie- nostabilen Kippbeimpulses schaltung C5.
Lesen des über-Einschalten der moeinstimmenden nostahilen Kipp-Wortes aus dem Schaltung C6. As sQziativspeicher in den Assoziativspeicherdatenregist er 446, Lesen der "BlQcknummer" in das "alte Block-' nummer-Register".
Setzen des LRU-abschnittes des Assoziativspeicherdatenregisters 446 auf 10000000. Prüfung der Stellung des A-Bit im Assoziativspeicherdatenregister 446.
YO 972 094
50980771071
monostabile Einachalt-Kippschaltung bedingungen eingeschaltet ausgeführte Funktioniert)
ausgeschaltet
ausgeführte
Funktion(en)
Das Α-Bit im Assoziativspeicherdaten- register steht auf "0."
Ausschalten
der monostabilen Kippschaltung C7.
Ausschalten
der monostabilen Kippschaltungen C8 und
ClO.
Austauschflipflop 514 steht auf 11I".
Leiten der Blockzahl aus dem Register 418 in das Austauschadreßregister. Leiten des realen Blockfeldes des Assoziativspeicherdaten- registers 446 in das Primäradreßregister. Rückstellung des Α-Bit im Assoziativspeicherdatenregister 446 auf "0". Anlegen dee Ersatzeinganges an die Kanalsteuerungen. Setzen des Ersatzflipflop 514 auf "1".
Schreiben des Inhaltes des Ässoziat ivspeicherdatenregisters 446 in den Assoziativspeicher.
Zustand der Austauschflipflops 514 prüfen.
Nur Verzögerung
Einschalten der monostabilen Kippschaltung C8. Ausführen des Speicherverwaltungspro gramme s.
Einschalten der monostabilen Kippschaltung C9.
Einschalten der monostabilen Kippschaltung C9.
Das Α-Bit im
Assoziativ-Speicherdaten- register 446
steht auf "1".
Leiten des Block-Zahlenfeldes des Assoziativspeicherdatenregisters 446 in das Schreibadreßregister .
Einschalten der monostabilen Kippschaltung C12.
YO 972 094
509807/1071
f'onostabile
Kippschaltung
Einschaltbedingungen
eingeschaltet
ausgeführte Funktion(en)
ausgeschaltet ausgeführte Funktion (en)
C12
Ausschalten der monostabilen Kippschaltung CIl
C13
Leiten der Blockzahl vom ZE-Register 4.18 in das . Aus taus cha are. jlre gister. ,leiten des realen BlockfeIdas des Assoziativen Speicherdatenrögisters in'das TrirvJradroßrogister. Leiten der Blockzahl vom Register 418 in das Assoziativs pei eherdatenre~ gister 4 46. Setzen des A-Bit des Asso- 7. .ta ti V5 pe i cherdaten· ■registers." 446 auf "O1V. Anlegen der Eingabe "Zurückschreiben und Austauschen" an die Kanalsteuerung. Setzen des Rückschreibe- und Austausch-Flipflop 516 auf '"I",.
Einschalten der mon-ostabilen Kipps ch altunα
Cl 3'.
Ausführung des Speicherverwaltungsprogrammes (
Ausschalten der monostabilen Kipps dialtung C12.
Schreiben des Inhaltes des A3soziativs pe icherdatenregisters 446 in den Assoziativspeicher. \ -
Einschalten der monostabilen Kippschaltung C14
f3s ehalten der monostabilen Kippschaltung C13. AuGSclialten der monostabilen Kippschaltung" C15.
Prüfen der Erstellung des Ruckschroibe- und Austausch-Flipflop 516.
YO 972 09*1
509807/107 1
ORIGINAL
Die folgende Tabelle zeigt die Beziehung der Operationen und der Steuerung des M-Taktes.
Monostabile Einschalt-Kippschaltung bedingungen ausgeführte Funktion(en) Wenn Schaltzustand "EIN"
Ausgeführte Punktion(en) Wenn Schaltzustand "AUS"
Ausschalten der Prüfen, ob die LRU-monostabilen Zahl 1 oder 2 ist Kippschaltung und ob der Inhalt B2. des Registers 154
zwei ist.
Aktive Leitung 392.
Rückstellung der Flipflops 866-894
Einschalten der
monostabilen
Kippschaltung
M3.
Ausschalten der Anlegen der LRU-
monostabilen
Kippschaltung
M2.
Zahl an eine der ausgewählten Leitungen 896-924. öffnen des Tores 246 oder 926.
Einschalten der
monostabilen
Kippschaltung
M4.
094
509807/1071
Monostabile Einscha.lt-Kippschaltung bedingungen eingeschaltet
ausgeführte
Funktion(en)
ausgeschaltet ausgeführte Punktion(en)
Ausschalten der monostabilen Kippschaltung M3. Anlegen des ersten Schiebeimpulses #
Einschalten der monostabilen Kippschaltung M5.
Ausschalten der monostabilen Kippschal- ses. tung MIf. Anlegen des zweiten Schiebeimpul-
Einschalten der
monostabilen
Kippschaltung
M6.
Ausschalten der monostabilen Kippschaltungen M 5 und
M9.
Öffnen des Tores
928. ·
YO 972 094
5 0 9 8 0 7 / 1 0
Es folgt eine Beschreibung des Speicherverwaltungsprogramms, das verschiedene Operationen zur Modifizierung des Inhaltes des LRU-Stapelspeichers 15» 17 ausführt, wenn ein Seitenaustausch notwendig ist. Die hierbei verwendeten Symbole sind folgende:
Tabellen:
Variable:
LR(I) ist eine Liste von N Einträgen, welche die LRU-Kennwerte enthalten. LR ist nach virtuellen. Seitennamen geordnet. Alle LRU-Einträge sind anfänglich Null.
BN(I) ist eine Liste von zwei Einträgen alter und neuer Blocknummern.
K ist die virtuelle Adresse der Seite, bei deren Aufruf ein Fehlseitenzustand eintritt.
REPL ist die virtuelle Adresse der im Primärspeicher zu ersetzenden Seite.
LMAX ist die Zahl von unterschiedlichen Seiten, die bis zum jeweiligen Zeitpunkt aufgerufen worden ist; diese Zahl ist anfänglich Null.
Konstante:
L ist das LRU-Zwi3Chenregister.
M ist die Zahl von Seitenrahmen im Primärspeicher (Größe des Primärspeiehers).
Punktionen;
N ist. die Zahl der Seiten im virtuellen Speicher.
AUSFÜHRUNG (J,LOC) führt spezielle Einrichtungsbefehle wie folgt aus:
YO 972 094
509807/1071
Beschre.ibung der AUSFÜHRUNG
Liest die alten und neuen Blockzahlen der Einrichtung in zwei aufeinanderfolgende Speicherpositionen bei LOC.
Lädt den Inhalt von LOC in das LRU-Erweiterungsregister der Einrichtung.
Zur Erläuterung des Speicherverwaltungsprogramms MMP wird auf das Schrittfolgediagramm von Fig. 6 bezug genommen. Dort gibt der Schritt 701 die Funktion "Ausführung (1,BN(I))". Wie aus der oben unter "Funktionen" angegebenen Tabelle ersichtlich ist, werden mit diesem Schritt die alten und neuen Blocknummern, d. h. die Blocknummer der im Primärspeieher zu ersetzenden Seite und die Blocknummer der eine Fehlseitensituation verursachenden Seite, in zwei aufeinanderfolgende Positionen bei LOC gespeichert, wobei LOC zu diesem Zeitpunkt BN(I) ist, worin I gleich 1 ist. Es folgt der Schritt 703, der eine Prüfung vorsieht, ob die alte Blocknummer BN(2) den Wert Null hat. Wenn der Schritt 703 ein Nein-Ergebnis hat, folgt als nächstes der Schritt 705, durch den das LRU-Zwischenregister auf den Wert LR(BN(2)) eingestellt wird. Wenn jedoch der Schritt 703 ein Ja-Ergebnis liefert, erfolgt ein übergang zum Schritt 707, durch den LMAX um 1 inkrementiert wird.
Es sei angenommen, daß der Schritt 703 zu einem Nein-Ergebnis geführt hat, so daß der Schritt. 705 in der beschriebenen Weise wirksam geworden ist. Es folgt dann der Schritt 709, durch den LR (BN(2)) auf Null gesetzt wird und LR(BN(I)) auf den Wert von M eingestellt wird, d. h. auf die Zahl der Seitenrahmen, die im Primärspeicher enthalten sind. Es sind dies die Seiten, für die der Stapelspeicher 15 einen Eintrag enthält. Als nächstes wird der Schritt 711 ausgeführt, worin der aufrufende Seiten-? name I auf Null gesetzt wird, und im folgenden Schritt 713 wird
Yo 972 094
50 9 8 07/107T
-Of-
I um 1 inkreraentiert.
Der Schritt 715 prüft, ob LR(I), worin I = I, größer als 0 und kleiner als der Wert von L ist, d. h. als der im LRU-Zwischenregister enthaltene Wert. Wenn der Schritt 715 ein Ja-Ergebnis ergibt, wird der Schritt 717 wirksam, der LR(I) um 1 inkrementiert, wonach der Schritt 719 zur Wirkung kommt. Wenn andererseits der Schritt 717 ein Nein-Ergebnis liefert, erfolgt
ein direkter übergang zum Schritt 719. Der Schritt 719 prüft, ob der Wert von I gleich dem Wert von N ist, d. h. ob alle Seiten im virtuellen Speicher in Betracht gezogen worden sind. Im Falle eines Nein-Ergebnisses erfolgt eine Rückkehr zum Schritt 713. Die Schritte 713, 715 und 719 werden wiederholt durchlaufen, bis der Schritt 719 bei I=N ein Ja-Ergebnis liefert, wonach der Schritt 721 zur Wirkung kommt. Der Schritt 721 betrifft die Funktion AUSFÜHRUNG (2, L), die den Inhalt des LRU-Zwischenregisters L in das LRU-Erweiterungsregister lädt. Der Schritt 723 ist der Rückkehrschritt zum Anfang der Schrittfolge.
Wenn der Schritt 703 zu einem Ja-Resultat führt, wird dem Schritt 707 LMAX um 1 inkrementiert. Hiernach kommt der Schritt 725 zur Wirkung, der den Inhalt des LRU-Zwischenregisters L auf den Wert auf LMAX einstellt. Der danach folgende Schritt 727 prüft, ob der Inhalt des Registers L den Wert von N überschreitet, d. h.
ob die Anzahl der Seitenrahmen im Primärspeicher ausreichen. Wenn hierbei ein Ja-Resultat erhalten wird, erfolgt ein übergang zum Schritt 709, im anderen Falle zum Schritt 721.
ΪΟ97209* 509807/1071

Claims (12)

PATENTANSPRÜCHE
1.) Anordnung zur Messung der Effektivität einer Datenverarbeitungsanlage bei der Ausführung Von Seitenaustauschoperationen in einem virtuellen Speichersystem, das einen Primärspeicher mit unterschiedlich großer Seitenaufnahmekapazität und einen Sekundärspeicher mit einer größeren Seitenaufnahmekapazität aufweist, dadurch gekennzeichnet, daß eine erste Operatoreinheit ( , 11, 19) vorgesehen ist, die einen Stapelspeicher (15, 17) umfaßt zur Aufnahme von den Seiten zugeordneten, nach dem Kriterium "aiii längsten unbenutzt" gewichteten.Benutzungskennwerten (LRU), daß die erste Operatoreinheit jeweils eine neu aufgerufene Seite unabhängig davon, ob.sie im Primärspeicher (3) gefunden wird oder erst aus dem Sekundärspeicher (5) zu holen ist, unter Zuordnung des niedrigsten LRU-Kennwertes an den Kopf des Stapels setzt, wozu die Kennwerte der restlichen Seiten ( bis,zur aufgerufenen Seite) dementsprechend abgeändert werden, daß eine zweite Operatoreinheit ( ,21) vorgesehen ist, die einen Stapelspeicher (23) umfaßt zur Aufnahme von Minimalkapazität-Kennwerten (MMC) für die minimale PrimärSpeicherkapazität, die ein Aufruf einer Seite im Optimalfalle bei Vermeidung unnötiger Seitenaustauschoperationen erfordern würde, daß der Stapelspeicher der zweiten Operatoreinheit jeweils mit dem LRU-Kennwert aus der e.rsten Operator einheit, der für die aufgerufene Seite bis zum Zeitpunkt des Aufrufs gültig ist, adressiert wird, daß die zweite Operatoreinheit den MMC-Wert an der adressierten Position mit den in Stapelrichtung darunter befindlichen MMC-Werten vergleicht sowie den jeweils kleinsten der verglichenen Werte durch den MMC-ert den adressierten Position ersetzt und in die oberste Position des Stapels bringt,' wozu die Adressen der darunter befindlichen Positionen bis zur adressierten Position jeweils um 1 verändert werden, und daß eine MMC-Kategorien-Zählschaltung (ZL2 bis ZR16) vorgesehen ist,.welche die Häufigkeit der Eingaben jeweils
YO972 0^ 509807/1071
eines bestimmten MMC-Wertes in das oberste Register des Stapels für wenigstens einen Teil der MMC-Werte als Maß der Austauscheffektivität zählt.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß bei jedem Seitenaufruf, der von einem zu verarbeitenden Programm als Element einer von diesem Programm festgelegten Seitenaufruffolge auftritt, beide Operatoreinheiten (21 und 11,19) wirksam werden.
3. Anordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die zweite Operatoreinheit (21) Schaltungen (866 bis 894) aufweist zur Markierung der Positionen im Stapelspeicher (23) von einer durch den Benutzungskennwert von der ersten Operatoreinheit (11,19) adressierten Position bis zur Position des ermittelten niedrigsten MMC-Kennwertes sowie zur Versetzung der Einträge der markierten Positionen relativ zu den Adressen dieser Positionen um jeweils eine Position in Richtung der Position des ermittelten niedrigsten MC-Kennwertes.
4. Anordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Operatoreinheiten (11,19 und 21) Modifizier- und Verschiebeschaltungen aufweisen, die WertVeränderungen und Wertumordnungen (Übertragungen zwischen den Stapelpositionen) in den Stapelspeichern (15,17 und 23) zur Anpassung an vorgenommene Seitenaustauschoperationen ausführen, wobei in einem Stapelspeicher (15, 17) Wertveränderungen und im anderen (23) Wertumordnungen relativ zu den Stapeladressen dieses Speichers erfolgen.
5. Anordnung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die zweite Operatoreinheit (21) zur Ermittlung des kleinsten MMC-Wertes eine Sortiereinrichtung aufweist, die zur Ausführung einer Sortieroperation der MMC-Einträge dient, die sich unterhalb des adressierten
109720911 509807/1071
MMC-Wertes befinden.
6. Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß die Sortiereinrichtung zur Durchführung einer Sortierung nach dem Prinzip des paarweisen Austausches der Einträge ausgebildet ist.
7. Anordnung nach einem der .Ansprüche 1 bis 6, dadurch gekennzeichnet, däß wenigstens Teile der Stapelspeicher (15,17 und 23) aus Registern bestehen, deren Stufen gleicher Ordnung nach Art von Schieberegistern miteinander gekoppelt sind, und daß eine Adressenänderung der Stapeleinträge durch eine "Vertikale" Parallelverschiebung innerhalb des Stapelspeichers erfolgt.
8. Anordnung nach einem der Ansprüche 1 bis 7» dadurch gekennzeichnet, daß der Stapelspeicher der ersten Operatoreinheit (11,19)»als Assoziativspeicher ausgebildet ist, in welchem der Name einer aufgerufenen Seite als Inhaltsadresse zum Auffinden des zugehörigen Benutzungskennwertes dient.
9. Anordnung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Stapelspeicher der zweiten Operatoreinheit (21) als Assoziativspeicher ausgebildet ist, dessen Register (936 bis 961O zusätzlich mit einer Schieberegisterverbindung zwischen den Registerstufen gleicher Stellenordnung versehen sind, und daß die Registerstufen interne Sortierschaltungen zur Ausführung von Größer/Kleiner-Vergleichen mit. dem Inhalt der jeweiligen Registerstufen aufweisen.
10. Anordnung nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß die Benutzungskennwerte der ersten Operatoreinheit (11,19) als speicherplatzbezogene Adressen des Stapelspeichers (23) der zweiten Operatoreinheit (21) dienen.
Y0 972 °94 5098077 1071
11. Anordnung nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der Stapelspeicher der ersten Operatoreinheit (11,19) unterteilt ist in einen Registerstapel (15), der die Seitennamen und die Benutzungskennwerte aller jeweils im Primärspeicher (3) enthaltenen Seiten speichert, und in eine in einem zusätzlichen Speicher (17) befindliche Liste, die alle Seitennamen und Benutzungskennwerte der im Sekundärspeicher (5) gespeicherten Seiten enthält.
12. Anordnung nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß der Ausgang der obersten Position (936) im Stapelspeicher (23) der zweiten Operatoreinheit (21) mit einem Decodierer (929) verbunden ist, dessen Ausgangssignale in Abhängigkeit vom Inhalt der obersten Stapelposition zur Auswahl und zur Inkrementierung jeweils eines aus einer Gruppe von Zählern (ZR2 bis ZR6) dienen.
109720911 509807/1071
L e e r s e i t e
DE2436932A 1973-08-02 1974-07-31 Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher Pending DE2436932A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/385,223 US3964028A (en) 1973-08-02 1973-08-02 System and method for evaluating paging behavior

Publications (1)

Publication Number Publication Date
DE2436932A1 true DE2436932A1 (de) 1975-02-13

Family

ID=23520537

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2436932A Pending DE2436932A1 (de) 1973-08-02 1974-07-31 Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher

Country Status (4)

Country Link
US (1) US3964028A (de)
JP (1) JPS5040242A (de)
DE (1) DE2436932A1 (de)
GB (1) GB1430544A (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5226124A (en) * 1975-08-22 1977-02-26 Fujitsu Ltd Buffer memory control unit
US4417321A (en) * 1981-05-18 1983-11-22 International Business Machines Corp. Qualifying and sorting file record data
JPS58102380A (ja) * 1981-12-11 1983-06-17 Hitachi Ltd 仮想記憶管理方法
US4511994A (en) * 1982-09-27 1985-04-16 Control Data Corporation Multi-group LRU resolver
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
US4967353A (en) * 1987-02-25 1990-10-30 International Business Machines Corporation System for periodically reallocating page frames in memory based upon non-usage within a time period or after being allocated
JPH02273843A (ja) * 1989-04-14 1990-11-08 Nec Corp スワッピング装置
US5043885A (en) * 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US5109496A (en) * 1989-09-27 1992-04-28 International Business Machines Corporation Most recently used address translation system with least recently used (LRU) replacement
GB2332532A (en) * 1997-12-19 1999-06-23 Brs Vision Limited Stereoscopic viewing apparatus which may be used as packaging for a compact disc
US6385699B1 (en) 1998-04-10 2002-05-07 International Business Machines Corporation Managing an object store based on object replacement penalties and reference probabilities
US7003475B1 (en) 1999-05-07 2006-02-21 Medcohealth Solutions, Inc. Computer implemented resource allocation model and process to dynamically and optimally schedule an arbitrary number of resources subject to an arbitrary number of constraints in the managed care, health care and/or pharmacy industry

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3541529A (en) * 1969-09-22 1970-11-17 Ibm Replacement system
US3577185A (en) * 1969-10-02 1971-05-04 Ibm On-line system for measuring the efficiency of replacement algorithms

Also Published As

Publication number Publication date
GB1430544A (en) 1976-03-31
JPS5040242A (de) 1975-04-12
US3964028A (en) 1976-06-15

Similar Documents

Publication Publication Date Title
DE2226290C2 (de) Vorrichtung und Verfahren zum Darstellen von Information auf einer zyklisch auffrischbaren Anzeigevorrichtung
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE60216938T2 (de) Gleichzeitiges durchsuchen verschiedener tabellen in einem inhaltsadressierbaren speicher
DE2853276C2 (de)
DE2230987C2 (de)
DE1524225B2 (de) Verfahren zum betriebe einer redigier- und wiedergabeeinrichtung
DE2854397A1 (de) Pufferspeichereinheit fuer ein datenverarbeitungssystem
DE2436932A1 (de) Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher
DE2310631A1 (de) Speicherhierarchie fuer ein datenverarbeitungssystem
DE2801610A1 (de) Verfahren zum definieren von anfangswerten fuer die textverarbeitung
DE2221442A1 (de) Assoziativspeicher
DE1774943B2 (de) Dateneingabeeinrichtung Ausscheidung aus 1474025
DE2047062A1 (de) Verfahren und Einrichtung zur Messung der Effektivität einer Daten Verarbeitungsanlage mit virtueller Adre»»ici uiig
DE1954202B2 (de) Elektronische digitale Datenverarbeitungsanordnung
DE2558417C3 (de) Datenverarbeitungssystem
DE2456710A1 (de) Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmenten
DE3025167C2 (de) Datenverarbeitungseinrichtung
DE1474042C3 (de) Datenspeichersystem zur Ein- und Ausspeicherung von in Ketten zusammengefaßten Daten unterschiedlicher Feldlänge
DE2433377A1 (de) Einrichtung und verfahren zur auswertung von datenseiten-transportvorgaengen in datenverarbeitungsanlagen
DE2840904C2 (de)
DE4119717C2 (de) Dokumentlayoutverarbeitungsverfahren und Vorrichtung zu dessen Durchführung
DE3714514A1 (de) Vorrichtung und verfahren zur textverarbeitung
DE3009330C2 (de) Verfahren zum Sortieren von in einem Hybrid-Assoziativspeicher gespeicherten Daten und Anordnung zur Durchführung des Verfahrens
DE2613703C2 (de) Schaltungsanordnung zum Übersetzen von Programmtexten
EP0139816B1 (de) Verfahren und Anordnung zum Aufsuchen von einem vorgegebenen Suchargument entsprechenden Daten einer Datenfolge mit assoziativen Einrichtungen

Legal Events

Date Code Title Description
OHJ Non-payment of the annual fee