DE2436932A1 - Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher - Google Patents
Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicherInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 173
- 238000012545 processing Methods 0.000 title claims description 30
- 230000008859 change Effects 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 claims description 7
- 230000006978 adaptation Effects 0.000 claims 1
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000008707 rearrangement Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 26
- 239000011159 matrix material Substances 0.000 description 22
- 238000000034 method Methods 0.000 description 14
- 230000007704 transition Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 101100136648 Mus musculus Pign gene Proteins 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 101150097247 CRT1 gene Proteins 0.000 description 1
- 241000188250 Idas Species 0.000 description 1
- 101150057104 MCIDAS gene Proteins 0.000 description 1
- 235000010678 Paulownia tomentosa Nutrition 0.000 description 1
- 240000002834 Paulownia tomentosa Species 0.000 description 1
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 210000000941 bile Anatomy 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 235000013601 eggs Nutrition 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 229940040566 latrix Drugs 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement 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
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
B
C
D
E
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).
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
Kipps ch altung
Einschaltbedingungen
eingeschaltet ausgeführte
Funktion(en)
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
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
Kippschaltung
Einsehaltbedingungen eingeschaltet
ausgoführte
Funktion(on)
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.
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.
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
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
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
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.
der monostabilen Kippschaltung C7.
Ausschalten
der monostabilen Kippschaltungen C8 und
ClO.
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".
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
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)
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. ·
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:
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)
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
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)
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)
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 |
-
1973
- 1973-08-02 US US05/385,223 patent/US3964028A/en not_active Expired - Lifetime
-
1974
- 1974-06-10 GB GB2560874A patent/GB1430544A/en not_active Expired
- 1974-07-09 JP JP49077927A patent/JPS5040242A/ja active Pending
- 1974-07-31 DE DE2436932A patent/DE2436932A1/de active Pending
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 |