DE2433377A1 - Einrichtung und verfahren zur auswertung von datenseiten-transportvorgaengen in datenverarbeitungsanlagen - Google Patents
Einrichtung und verfahren zur auswertung von datenseiten-transportvorgaengen in datenverarbeitungsanlagenInfo
- Publication number
- DE2433377A1 DE2433377A1 DE2433377A DE2433377A DE2433377A1 DE 2433377 A1 DE2433377 A1 DE 2433377A1 DE 2433377 A DE2433377 A DE 2433377A DE 2433377 A DE2433377 A DE 2433377A DE 2433377 A1 DE2433377 A1 DE 2433377A1
- Authority
- DE
- Germany
- Prior art keywords
- page
- list
- lru
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 35
- 238000012545 processing Methods 0.000 title claims description 29
- 238000011156 evaluation Methods 0.000 title description 3
- 230000015654 memory Effects 0.000 claims description 168
- 238000001514 detection method Methods 0.000 claims description 2
- 101100495769 Caenorhabditis elegans che-1 gene Proteins 0.000 claims 1
- 230000006870 function Effects 0.000 description 30
- 239000011159 matrix material Substances 0.000 description 25
- 230000008569 process Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 229940095743 selective estrogen receptor modulator Drugs 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- LZZYPRNAOMGNLH-UHFFFAOYSA-M Cetrimonium bromide Chemical compound [Br-].CCCCCCCCCCCCCCCC[N+](C)(C)C LZZYPRNAOMGNLH-UHFFFAOYSA-M 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000333 selective estrogen receptor modulator Substances 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 108010076504 Protein Sorting Signals Proteins 0.000 description 2
- 230000036651 mood Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Description
Einrichtung und Verfahren zur Auswertung von Datenseiten-Transportvorgängen in Datenverarbeitungsanlagen
Die Erfindung betrifft Datenverarbeitungssysteme, in denen Betriebssysteme
nach dem virtuellen Speicherkonzept arbeiten. Insbesondere betrifft sie ein Gerät zum Betrieb und zur Bewertung
solcher Speicher im Betrieb.
In den letzten Jahren basierten verschiedene Typen von Datenverarbeitungsgeräten
auf dem Konzept des virtuellen Speichers, der eine Kombination aus einem kleineren sehr schnellen Hauptspeicher
mit einem größeren relativ langsameren Sekundärspeicher, verwendet.
Der virtuelle Speicher benutzt den Sekundärspeicher, indem er ihm virtuelle Adressen gibt, die über den Grenzen des Hauptspeichers
liegen. Das Betriebssystem in einem virtuellen Speicher arbeitet, als ob der Sekundärspeicher eine Erweiterung des sehr'
schnellen Hauptspeichers wäre, mit Hilfe der "Seitenverschiebung". Unter "Seitenverschiebung" versteht man das Einbringen einer Informationsseite
im Sekundärspeicher in den Hauptspeicher zu dem Zeitpunkt, an dem sie benötigt wird.
509807/1012
Gleichzeitig mit virtuellen Speichern, die eine Seitenbedarfstechnik
verwenden, wurden auch Austausch-Algorithmen entwickelt,
mit denen bestimmt wird, welche Seite aus dem Hauptspeicher zu entfernen und in den Sekundärspeicher zurückzusetzen ist, wenn
der Hauptspeicher überlauft. Solche Austausch-Algorithmen benutzten
bisher verschiedenen Kriterien zur Bestimmung ihrer Wahl wie beispielsweise die Regel zuerst-Ein-zuerst-Aus (FIFO), am längsten-unbenutzt
(LRU) und andere. Bei einem Seitenanforderungssystem
steht sehr oft eine benötigte Seite nicht dem Hauptspeicher zur Verfügung und diese NichtVerfügbarkeit nennt man eine
"Fehlseite".
Schon zeitig bei der Entwicklung virtueller Maschinen, die die Seitenverschiebung benutzen und der Austausch-Algorithmen in
solchen Maschinen wurde erkannt, daß es bei einem durch seine Instruktions-Referenzreihe
gegebenen Programm und bei bekannter Hauptspeichergröße nützlich ist, die Mindestzahl von Fehlseiten zu
kennen, die notwendig sind, damit das Programm läuft, um Speicherkonfigurationen
und/oder Algorithmen auszuwerten. Die Mindestzahl
von Fehlseiten dividiert durch die Anzahl von durch einen Austausch-Algorithmus erzeugten Fehlseiten ist dann definiert als der
Wirkungsgrad dieses speziellen Algorithmus. Wirkungsgrade wurden bisher extensiv gemessen und dabei fanden sich große Schwankungen
zwischen etwa 0,15 und 1,0, wobei der ungefähre Durchschnitt bei 0,4 liegt.
Um die Mindestzahl von Fehlseiten zu bestimmen wurden der sogenannte
MIN-Algorithmus und der OPT-Algorithmus entwickelt. Der
MIN-Algorithmus ist· genauer beschrieben worden von L. A. Belady,
"A Study of Replacement Algorithms for Virtual Storage Computers", IBM Systems Journal, Vol. 5, No. 2, June 1966. Dieser Algorithmus
ermöglicht die zusammenhängende Verarbeitung einer Referenzreihe und errechnet bei gegebener fester Speichergröße einen einzigen
Mindeswert, indem er bei notwendiger und veränderlicher Verzögerung die Speicherzustände und ihre übergänge konstruiert. Der
YO 973 039
509807/1012
durch diesen MIN-Algorithmus gegebene Nachteil besteht darin, daß
er nur jeweils für eine Speichergröße zutrifft.
Um diesen Nachteil zu überwinden wurde der OPT-Algorithmus entwickelt,
der beschrieben ist in R. L. Mattson, J. Gecsei, D. R. Slutz, and I. L. Traiger, "Evaluation Techniques for
Storage Hierarchies", IBM Systems Journal, Vol.. 9, No. 2, June 19 70. Dieser OPT-Algorithmus errechnet die Mindestzahl von Fehlseiten
für den gesamten Bereich von Speiehergrößen im wesentlichen
gleichzeitig. Der Nachteil bei der Verwendung des OPT-Algorithmus liegt darin, daß er eine wiederholte Vorausschau benötigt, die
dann durch einen vorverarbeitenden ersten Durchgang eliminiert wird» Dieser erste Durchgang ist die Konstruktion der am wenigsten
benutzten Distanzreihe die im allgemeinen in umgekehrter Reihenfolge aufgebaut wird. Die resultierende Sequenz wird hinterher
durch den OPT-Algorithmus verarbeitet zur Berechnung seiner Distanzreihe, d. h. der Reihenfolge von Speichern mit Mindestkapazität.
Bei der Betrachtung der oben beschriebenen MIN- und OPT-Algorithmen
wurde festgestellt, daß beide in bestimmten Situationen nützlich sind. So ist der MIN-Algorithmus eine einfache kontinuierliche
und wirksame Technik, wenn nur eine Speichergröße von Interesse ist und kann häufig in Kompilierern für die Registerzuordnung
verwendet werden. Eine solche Anwendung ist beschrieben in F. R. A. Hopgood, "Compiling Techniques", MacDonald:
London, 1970; pp. 96-99, und in der Veröffentlichung von Dr. Gries,
"Compiler Construction for Digital Computers", John Wiley & Sons, New York 19 72. Der OPT-Algorithmus ist jedoch etwas verfeinert
und benötigt größere Mengen aufgezeichneter Information, er ist aber insofern wirkungsvoll, als er direkt Information über das
gesamte Raum- Zeitverhalten des Programmes liefert. Daher wird der OPT-Algorithmus weitgehend zur Auswertung von Speicherhierarchiekonfigurationen
verwendet.
YO 9 73 039
B09807/1012
2A33377
Weder der MIN-Algorithmus noch der OPT-Algorithmus kann jedoch
als on-line-Element in einem Betriebssystem benutzt werden. Ihr
Einfluß auf Aus tausch-Algorithmen ist daher nur indirekt und erfolgt
über die größere Einsicht, die sie über das Programmverhalten
vermitteln.
Weitere Entwicklungen in diesem Bereich sind beispielsweise durch die Veröffentlichung von L. P. Horwitz, R. M. Karp, R. E. Miller
und S. Winograd, "Index Register Allocation", Journal of the ACM, Vol. 13, No. 1, January 1966, beschriebenen, worin eine elegante
Lösung des allgemeinen Problemes der Indexregisterzuordnung beschrieben
wird. In der ü. S.-Patentschrift Nr. 3 577 185 vom
4. Mai 1971 wird ebenfalls ein on-line-Element zur Berechnung von
Näherungswerten für die Mindest-Fehlseitenzahl beschrieben.
Alle bisherigen Entwicklungen, die oben beschrieben wurden, zur Bestimmung der Mindestzahl von Fehlseiten haben jedoch verschiedene
Nachteile, wie die Anwendbarkeit auf eine bestimmte Art von Umgebung, den Bedarf an wiederholter Vorausschau, Komlexität
oder Unfähigkeit der Verwendung in einer on-line-Umgebung.
Die Aufgabe der vorliegenden Erfindung besteht daher in der Erstellung eines Gerätes und Verfahrens zur Bestimmung des Verhaltens
von Austausch-Algorithmen in einem virtuellen Speichersystem, die on-line benutzt werden können sollen.
Die Lösung dieser Aufgabe ist im Haupt- und Nebenanspruch gekennzeichnet.
Nach dem Erfindungsgedanken ist eine Einrichtung zur Verwendung, in einem Datenverarbeitungsgerät vorgesehen, welches als Seitentransportmaschine
betrieben wird und in dem ein Programm als eine Seitenbezugskette oder Reihe betrachtet wird, um die Mindestspeicherkapazitäten
für die Seiten der Reihe zu bestimmen. Das Datenverarbeitungsgerät enthält Einrichtungen um eine erste Liste der
Namen der Seiten des Programmes festzuhalten, die nach dem Krite-
YO 973 039
509807/1012
rium der am weitesten zurückliegenden Benutzung geordnet und aus
den Namen der Seiten und ganzen Zahlen zusammengesetzt ist, die einen von verschiedenen diskreten Werten zwischen 1 und η haben
und entsprechend zu jedem Seitennamen nach dem oben genannten Kriterium gehören, wobei η gleich der Gesamtzahl von Seiten im Programm
ist. Das System enthält Einrichtungen, um eine zweite Liste von Seitennamen festzuhalten. Diese zweite Liste besteht aus einer
geordneten Folge von 1 bis η Adressen, von denen jede wieder einen von verschiedenen diskreten Werten 1 bis η hat und wo an jeder
Adresse eine ganze Zahl C steht, aus der die Mindestspeicherkapazität (MMC) der Seite bestimmt werden kann und wo jede der
ganzen Zahlen in der zweiten Liste einen anderen Wert zwischen 1 und η hat. Das System enthält weiter Einrichtungen zur Bestimmung
der Mindestspeicherkapazität (MMC) einer gegebenen angezogenen Seite, die Einrichtungen enthält, welche auf die Bezugnahme
auf eine gegebene Seite reagieren und die zweite Liste in eine erste Gruppe von Adressen mit dem Wert 1 bis (Jl-I) und eine
zweite Gruppe von Adressen mit den Werten vonA bis η worin £
gleich dem Wert der ganzen Zahl LRU ist, die zu der angezogenen Seite in der ersten Liste gehört. Die Bestimmungseinrichtung
für die Mindestspeicherkapazität enthält weiterhin Einrichtungen zur Erhöhung entsprechender Adressen 2 bis (Jl-I) in der ersten
Gruppe um 1, d. h. auf 3 bis auf Jl und Einrichtungen zum Auffinden
der Adresse k in der zweiten Gruppe, wobei der niederste ganzzahlige Wert die Mindestspeicherkapazität ist. Außerdem enthält
diese Einrichtung Vorkehrungen zur Markierung einer Reihe von Adressen in der zweiten Gruppe, die in der Untergruppe enthalten
sind, die die Adressen Jl (Jl+1),... (k-1) enthält, die
entsprechend die folgenden Werte haben (£+a), (Jl+b), (Jl+c) usw.
nötigenfalls bis zur Adresse (k-1), worin (Jl+a) den kleinsten Adresswert hat, der größer ist alsÄ , so daß C (Jl+a)
< C(Jl) ist, worin (Jl+b) den kleinsten Adresswert hat, der größer als U+a)
ist und somit ist C(Jl+b) < C(Jl+a) usw. worin C(i) die ganze Zahl an der Adresse i ist. Die die Mindestspeicherkapazität bestimmende
Einrichtung enthält außerdem Vorrichtungen zur Erzeugung der kleinsten Fehlzahl in der Gruppe der Zahlen, die von
YO 9 73 039
509807/1012
2 bis (C +1) dient, worin C der größte ganzzahlige Wert C
an den Adressen 2 bis (A-I) ist, und die so erzeugte kleinste
Fehlzahl die Mindestspeicherkapazität der angezogenen Seite. In der MMC-Bestimmungseinrichtung sind weiterhin Vorrichtungen
vorhanden, um den Adresswert 2 der erzeugten kleinsten Fehlzahl zuzuordnen und Einrichtungen, um jeder markierten Adresse in der
Reihe den Wert der nächsten Adresse in der Reihe zuzuordnen wobei der höchste Adresswert in der Reihe den Wert k erhält, und wobei
die ursprünglich an der Adresse k stehende ganze Zahl ausscheidet.
Nach dem Erfindungsgedanken ist außerdem ein Verfahren vorgesehen zur Verwendung in einem Datenverarbeitungsgerät, welches als Seitentransport-Maschine
betrieben wird, in der ein Programm als eine Seitenbebezugsreihe betrachtet wird, um die Mindestspeicherkapazitäten
für die Seiten der Reihe zu bestimmen. Das im Verfahren benutzte Datenverarbeitungsgerät enthält Einrichtungen zum Festhalten
einer ersten Liste der Seitennamen des Programmes, die nach dem Kriterium der geringsten Benutzung geordnet ist. Diese erste
Liste wird durch die Namen der Seiten bzw. ganzen Zahlen gebildet,
wobei zu jedem Namen ein anderer der Werte 1 bis η nach dem Kriterium der geringsten Benutzung (LRU) gehört und η gleich
der Gesamtzahl von Seiten im Programm ist. Zum Verfahren gehört auch das Fortschreiben einer zweiten Seitennamenliste, die aus einer
geordneten Reihenfolge von η Adressen besteht, wobei jede der Adressen einen anderen Wert zwischen 1 und η hat. An jeder
Adresse steht ein anderer Seitenname und eine ganze Zahl C, aus denen die Mindestspeicherkapazität (MMC) der Seite bestimmt werden
kann. Jede der ganzen Zahlen in der zweiten Liste hat entsprechende diskrete Werte zwischen 1 und n. In einem weiteren Verfahrensschritt
wird die Mindestspeicherkapazität einer gegebenen Bezugsseite bestimmt, wobei dieser Schritt auch wieder aus mehreren
Unterschritten besteht. Wenn auf eine gegebene Seite Bezug genommen wird, wird die zweite Liste in eine erste Gruppe
von Adressen mit den Werten zwischen 1 und (5,-1) und in eine
zweite Adressgruppe mit den Werten I bis η unterteilt, worin %
YO 973 039
50 9807/1012
der Wert der LRü-Zahl ist, die zu der Seite in der ersten Liste
gehört. Dann werden die Adressen 2 bis (5,-1) in der ersten Gruppe
um 1 erhöht, wodurch sie die entsprechenden Werte 3 bis haben und die Adresse k in der zweiten Gruppe bestätigen, wobei
der niedrigste ganzzahlige Wert für Mindestspeicherkapazität vorhanden ist. Zu dem Schritt, in dem die Mindestspeicherkapazität
bestimmt wird, gehören weiter die Unterschritte der Markierung der Reihe von Adressen in der zweiten Gruppe, die in
den Adressen Z1 U+l), ... (k-1) liegen, die die folgenden Werte
haben U+a), (ί,+b), (£+c)... bis zur Adresse (k-1), wenn nötig,
worin (£+a) der kleinste Adresswert ist, der größer ist als Z
so daß C(£+a) < CU) ist, worin (ί,+b) den kleinsten Adresswert
hat, der größer ist als (ί,+a), so daß C(Jl+b)
< C(Z) ist usw., worin C(i) der Wert der ganzen Zahl C an der Stelle i ist, und
die kleinste fehlende Zahl in der Gruppe der ganzen Zahlen erzeugt, die in die Gruppe 2 bis (C +1) eingeschlossen ist, worin
Cmax der größte ganzzahlige Wert C an der Adressposition 2 bis ( jfl) ist, die erzeugte kleinste Fehlzahl die Mindestspeicherkapazität
der bezogenen Seite ist. Der Schritt zur Bestimmung der Mindestspeicherkapazität umfaßt auch die Unterschritte
der Zuordnung des Adresswertes 2 zur oben erzeugten kleinsten fehlenden Zahl und die Zuordnung zu jeder der Reihen
der markierten Adressen der zweiten Gruppe des Wertes der nächsten Adresse in dieser Reihe, wobei die Adresse mit dem
höchsten Wert in der Reihe dem Wert k zugeordnet wird. Die ursprünglich auf der Adresse k stehende Zahl wird nicht mehr beachtet
.
Die Erfindung hat den Vorteil, daß das angegebene Gerät im Vergleich
zu bekannten Einrichtungen einfach ist und mit kleinen Informationsmengen auskommt. Diese Informationen können während
der laufenden Datenverarbeitung aufgezeichnet werden, so daß durch diesen on-line Betrieb die herkömmliche Abschaltung der Datenverarbeitungsanlag
e entfällt, außerdem macht die Erfindung eine vorausschauende Vorverarbeitung dieser Informationen unnötig.
YO 973 039
509 807/1012
~ O —
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt
und wird anschließend näher beschrieben. Es zeigen:
Fig. 1 In einem Blockdiagramm das Erfindungskonzept;
Fign. 2A-2V zusammengelegt gem. Fig. 2 in Form eines Block-
diagrammes ein Ausführungsbeispiel der Erfindung;
Fig. 3A-3D zusammengelegt gemäß Fig. 3, Beispiele der Stu
fen in dem MIN-Kasten, d. h. den in Fig. 2 gezeigten
OPT-Stapel;
Fign. 4A-4U zusammengelegt gemäß Fig. 4 das Blockdiagramm
des MIN-Kastens oder des OPT-Stapels, wobei
in dieser Figur die Schaltungen im MIN-Kasten bei der Ausführung der ersten Phase des in
Fig. 9 gezeigten Rechenbeispieles verfolgt werden;
Fign. 5A-5I zusammengelegt gemäß Fig. 5, dasselbe Bild wie
die Fign. 4A-4E, jedoch werden in dieser Figur die Schaltungen im MIN-Kasten bei der Ausführung
der zweiten Phase des in Fig. 9 gegebenen Rechenbeispieles verfolgt;
die
die
Fign. 6A-6I dasselbe Bild wie die Fign. 5A-5I, jedoch wer
den hier die Schaltungen im MIN-Kasten bei der Ausführung der dritten Phase des in Fig. 9 gegebenen
Rechenbeispieles verfolgt; die
Fign. 7A-7C zusammengelegt gemäß Fig. 7 sind identisch mit
den Fign. 4A-4C, 5A-5C und 6A-6C und hier werden
YO 973 039
509807/1012
die Schaltungen im MIN-Kasten bei der Ausführung
der vierten Phase des in Fig. 9 gegebenen Rechenbeispieles verfolgt;
die
die
Fign. 8A-8U zusammengelegt gemäß Fig. 8 dasselbe Bild wie
die Fign. 4A-4U, jedoch werden in dieser Figur die Schaltung im MIN-Kasten bei der Ausführung
der letzten Phase des in Fig. 9 gegebenen Rechenbeispieles verfolgt;
Fig. 9 ein Rechenbeispiel zur Erklärung der Arbeits
weise des MIN-Kastens nach dem Erfindungsgedanken;
Fig. 10 in einem Ablaufdiagramm eine Routine, die zum
Rückstellen des MIN-Kastens aufgerufen wird;
Fig. Ii in einem Ablaufdiagramm eine Routine, die bei
Auftreten einer weiten Ausnahme aufgerufen wird;
Fign. 12A-12B zusammengelegt gemäß Fig. 12 ein Ablaufdiagramm
einer Routine, die nach der Ausführung der Seitenausnahmeroutine der Fig. 11 aufgerufen wird,
wo die Speicherkomponente der OPT-Liste in Konsistenz zu bringen, um die die Seitenausηahme
in der OPT-Liste verursachende Seite verarbeiten und die LRU-Liste auf den neuesten Stand
bringen zu können;
Fig. 13 in einem Ablaufdiagramm die MIN-Kasten-Suchrou-
tine, die in der in Fig. 12 gezeigten Routine verwendet wird;
YO 9 73 039
509807/1012
Fig. 14 ein Ablaufdiagramm der BUBL-Routine (Blasen
sortieren), die in der in Fig. 12 gezeigten Routine verwendet wird und
Fig. 15 ein Ablaufdiagramm der NEWR-Routine (Prozeß
neuer Bezug), die in dem Ablaufdiagramm der
Fig. 11 verwendet wird.
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 Prozess, 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 anderen 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 erreichen. Diese
Berechnung ist in der erwähnten Mattson-Veröffentlichung beschrieben.
In der hier beschriebenen Erfindung ist kein expliziter Stapel im Sinne der Mattson-Veröffentlichung vorgesehen. Die Folge
von Mindestspeicherkapazitäten (MMC) wird Ausgabereihe genannt.
Bisher war das Endziel der optimalen Stapelkonstruktion für die Auswertung von Speicherhierarchien die Erzeugung der MMC-Reihe.
YO 9 73 039
509807/1012
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.
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 IBM Systems Journal, June 1966 beschrieben ist.
Der Konzeptrahmen dieses Algorithmus ist eine zweidimensionale Markierungs-Matrix, in der eine Zeile zu jeder einzelnen Seite
gehört. Ein Satz von KonstruktionsregeIn 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 Spalter existiert, ta
< τ < t, mit ρ Markierungen^ markiere (α, τ ) und kehre zurück.
Andernfalls markiere alle leeren (α, τ ), ta<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.
YO 973 Ο39
5 0 9 8 0 7/1012
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
Eil
In dem obigen Beispiel verursachen wiederholte Referenzen wie
2. B. EE keine neuen Markierungen für einen Wert von ρ und sind
somit redundant. Bei der weiteren Beschreibung der Erfindung werden daher Wiederholungen unterdrückt und als Beispiel wird die
folgende Reihe benutzt ABCDEDBCBDAEAC.
Die 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 vorherbezogenen 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.
YO 973 039
509807/1012
Nach dem Erfindungsgedanken wird der obige MIN-Algorithmus 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 χ 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=I, ... 5 in dem verwendeten Beispiel gezeigt, das mit den modifizierten
Regeln arbeitet.
ABCDEDBCBDAEAC
P =
A 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
B | 1 | |||||||||||||||||
C | 1 1 | |||||||||||||||||
η | ||||||||||||||||||
E | 1 1 | 1 | 1 | |||||||||||||||
A 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||||||||
B | 1 | |||||||||||||||||
C | 1 | |||||||||||||||||
D | 1 | 1 | 1 | |||||||||||||||
E | 1 | 1 | pH | |||||||||||||||
A 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||||||||||
B | 1 | 1 | ||||||||||||||||
C | 1 | 1 | 1 | |||||||||||||||
D | ||||||||||||||||||
L· | 1 | |||||||||||||||||
ρ = 2
P = 3
Al 111
B 11111111
C 111111111111 ρ = 4
D 1111111 E 11111111
Alllllllllllll
B 11111111
C 111111111111 P = 5
D 1111111
E 11111111
Ähnlich wie in der oben gezeigten Matrix übersteigt die Anzahl von Markierungen in einer Spalte niemals den Wert p, kann aber
YO 973 039
509807/1012
kleiner sein. Die Mindestzahl von zum Laufen des Programmes notwendigen
Zügen ist dann gleich der Anzahl von Markierungen, vor denen links keine Markierung, sondern eine Lücke steht.
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 4 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=l 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.
YO 9 73 039
50 9807/1012
Jetzt kann man eine kombinierte Matrix aufbauen, indem man die
Bezugsreihe kontinuierlich verarbeitet. Beim nächsten Bezug Xfc
auf die Seite α, wird die Zahl 1 zur Markierung (α, t) verwendet.
Dann 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 Referenz zur Seite α) begrenzt ist. Im ursprünglichen MIN-Algorithmus
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 Seiten Ausnahmen 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 22 3444 ist gültig, während z. B. eine Zahlenreihe 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.
YO 973 039
509807/1012
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
nummerischen Reihen-Algorithmus:
Es wird angenommen, daß der nächste Bezug in der Reihe R,χ zur Seite α verläuft.
Dann folgt die Markierung (α, t) mit einer Zahl 1. Beginnend 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 Spalte τ 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:
t
ABCDEDBCBDAEAC
ABCDEDBCBDAEAC
A 1234555555121
B 212233121
C 33134441222331
D 4441212331
E 555512344441
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.
YO 9 73 039
509807/1012
Daraus läßt sich entnehmen, daß die kombinierte Matrix die folgenden
Eigenschaften hat; Wenn der t-te Bezug zur Seite α erfolgt,
dann ist (a,t) markiert mit 1. Außerdem stellt die Zahl (cx/t-1) ,
d. h. ρ die Mindestkapazität des Speichers (MMC), der die Seite α enthä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 Definition
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 vom 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-Folge als
Antwort auf die Eingabereihe R enthält. Da historische Information praktisch kaum gebraucht wird, wird sie unterdrückt.
Im nummerischen Reihen-Algorithmus wird bei der Präsentation des
nächsten Bezuges eine neue Reihe aufgebaut, die der Einschränkung durch bereits frühere 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 Sei-
YO 973 039
509807/1012
tenreferenz 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 D 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 Reihenfolge
ihrer Länge oder der gleichwertigen Reihenfolge der am v/eistesten zurückliegenden Benutzung früherer Referenzen ist folgende
:
A 2
E 2 2
D 3 4 4 4
B 3 3 4 4 4
B 3 3 4 4 4
Nur eine dieser Reihen würde natürlich zur tatsächlichen Mindestreihe,
d. h. diejenige Reihe, die tatsächlich als nächste angezogen wird. Ein neuer Satz potentieller Ausgaben kann dann definiert
werden. Dadurch sollen die poteniellen Ausgaben so beschrieben werden, 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 ähnlich 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
YO 9 73 039
509807/1012
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 α ist die Zahlenreihen, die durch die oben erwähnten Regeln erzeugt wird, wenn die nächste Referenz zum Element
A erfolgt. Die oben für A, E, D und B aufgeführten Reihen 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 einer längeren 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 | 2 | 3 | CMS | 5 | |
A | 22 | 4 | 55 | ||
E | . 3444 | 44 | 5555 | ||
D | 33444 | ||||
B | |||||
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 Unterreihe 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.
YO 9 73 039
109807/101?
2A33377
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:
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 Mindesausgabewerte. Die Liste
der Primitiven für das obige Beispiel ist folgende:
E 2
D 5 5 5
B 3 3 4 4
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 der p-Stapel der Ausgabewerte und wird folgendermaßen interpretiert:
B, das am längste unbenutzte Element hat nur eine Anfangszahl
für eine Mindestreihe (IMS) und seine Endzahl ist vier, welches die nächste MMC-Ausgabe 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
YO 973 039
509807/1012
Zahl vier 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.
Betrachtet man den p-Stapel der Ausgabewerte in der Reihenfolge'
der am weistesten zurückliegenden Benutzung ihrer zugehörigen Elemente an, 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 £-then Reihenfolge angezogene Element
herangezogen, so wird als MMC die kleinste Zahl aus dem Satz S der Zahlen bei oder unter der (A-I)-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 IMS primitiv ist oder eine richtige ünterreihe, entweder eines 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 unbenutzten 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.
YO 973 039
509807/1012
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 werden jedoch verändert, d. h. , entweder eine IMS oder eine CMS
geht für jedes Element in diesem Bereich durch die tatsächliche Reihe in der Zeile α verloren. Das ist gleichwertig mit der Bewegung
des neuen Ausgabewertes, d. h., der Endzahl der tatsächlichen Reihe aus ihrer früheren Position nach oben in den p-Stapel.
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 | I | 5 | E | 2 |
A | 2 | 4 | C | 3 | |
E | k A | ||||
5 | |||||
D | " 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 | 5 L | f A | 2 |
D | 4 | w E | 5 |
» 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 ange-
YO 9 73 039
509807/1012
zogen 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 Mindestbeschränkung werden diese Zahlen die kleinste (frühere) CMS vonα . Diese CMS
von α wiederum kann eine Unterreihe während einer anderen IMS oder CMS sein, wodurch ihre einschließende Reihe durch die
nächst kleinste CMS von α herausgezogen wird usw., wie es in folgendem Beispiel gezeigt ist:
A | 5 | 5 | 5 | Jj | 4 | 5 | 5 | 5 | 1 | 2 | i| |
B | 2 | 1 | J3 | 3 | 3 | 2 | 1 | [3- | 3 | 4 | 4 |
C | 1 | [F | 2 | 2 | 2 = | ==£> 1 | £_ | 2 | 2 | 3 | 3 |
D | 3 | 3 | T] | _5_ | 5 | 3 | 3 | l[ | _5_ | 5 | 5 |
E | 4 | 4 | 4 | 4 | ι! | 4 | 4 | 4 | 4 | 1 | 2 |
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:
■♦4
5
3
2
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, endet seine neue IMS mit einer drei, welches die
YO 9 73 039
509807/1012
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 3344, endent mit 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
an den Ausgabewert aus dem Stapel herausnehmen und anschließend oben hinaussetzen. 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:
-P-
M ^ (KMC)
H^
worin L ein Operator ist, der die Folge R von Seitenreferenzen in einer Folge L von LRU-Positionen umwandelt. Er hält die bereits
angezogen Seiten (Seitennamen) 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-l) 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-l) wird ausgegeben und es erfolgt die Rückkehr.
YO 9 73 039
509807/1012
M ist ein Operator, der die Folge L der LRU-Positionen in einer
Folge M von Mindestspeicherkapazitäten (MMC) transformiert. Frühere Auscjc-ibewerte (Einschränkungen) v/erden 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 (£+1) = ρ oben in den Stapel gesetzt wobei ρ
ausgegeben wird und eine Rückkehr erfolgt. Andernfalls, der kleinste
p-l/ert wird bei oder unter der λ-ten Position im modifizierten
Stapel gefunden.
Wenn ρ auf der 2,-ten Position steht, wird ρ herausgenommen und
oben auf den Stapel gesetzt, ρ wird ausgegeben und es erfolgt eine Rückkehr.
Andernfalls f 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.
Der M-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 ί,-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 YO 9 73 039
509807/1012
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 LRU-Stapel, der die Liste der in der LRU-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ückliegendem
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 gerettet und alle Stücke zwischchen
diesem Wert und der zweiten Position um eine Position nach unten bewegt. Der gerettete Wert wird mit dem Wert in der nächsten
Position verglichen. Der größere dieser beiden Werte wird in diese Position gesetzt und der kleinere Wert gerettet. Der
Prozess 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:
YO 9 73 039
509807/1012
Nimmt man an, daß k die LRU-Stapelposition ist, so sind alle Teile
zwischen 2 und k-l 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 den letzten markierten Teil steht, 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 markierten Position verschoben und der OPT-Stapelwert
in die zweite Position des P-Stapels gesetzt. Die Ausgabe ist die LRU-Stapelposition k und die OPT-Stapelposition (MMC).
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 anschliessend zusammengefaßt.
Bei der Operation dieses Algorithmus wird im ersten Durchlauf der Seitenbahn die Vorwärtsstreckenreihe geschaffen, d. h. die
Referenzreihe R=X, X_, ... X^ und die Vorwärtsstreckenreihe
F=F, F_, ... F„, 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
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ätzahl) 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.
YO 973 039
S09807/1012
Die Prioritätsliste L wird wie folgt auf den neuesten Stand gebracht:
Alle Prioritäten, die kleiner oder genauso groß wie die Vorwärtsstrecke F, . sind, v/erden um eins reduziert und die Priorität
für die angezogene Seite Xt+1 ist Ffc+1·
Im Zusammenhang mit den erfindungsgemäß erzielten Algorithmus
wurde oben formlos 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-Stapeistrecke sind. Im nummerischen
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 werden, weil der erste Durchgang alle notwendigen Informationen über die Zukunft liefert.
Die nachfolgende Tabelle basiert auf dem oben erwähnten Beispiel der Referenzreihe ohne die Seite A. In dieser Tabelle werden nur
acht aufeinanderfolgende Pveferenzen verwendet. Um mit dem OPT-Algorithmus übereinzustimmen, 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 Bfc nur die jüngsten (n+1) Spalten gezeigt.
YO 9 73 039
509807/1012
Seiten- OPT-Stapelreferenz Positionen: Zeit X (frühere Z anti
t lenmatrix)
Liste ver- nicht zufügbarer geordnete Ausgafreier
Posi- Seitenli- be tionen A.
ste B,
MMC.
B 1
B | 1 | 1 | 1 | 1 | 1 | 1 | 2 | B |
C | — | |||||||
B | 1 | 1 | 3 | 22 | BB | |||
C | - | — | 1 | 2 | 3 | C | ||
D | — | — | 1 | 1 | 1 | |||
B | 1 | 1 | 3 | 4 1 | 222 | BBB | ||
C | - | - | 3 | 33 | CC | |||
D | - | — | 1 | 2 | 4 | 4 | D | |
E | — | — | 1 | 1 | 12 1 | |||
B | 1 | 1 | 2 | 3 | 4 1 | 2244 | BBBB | |
C | - | - | 4 | 3 | 333 | CCC | ||
D | - | — | 1 | 2 | 4 | 2 | E | |
E | — | 2 | — | 1 | 1 | |||
B | 1 | 1 | 2 | 3 | 3444 | CCCC | ||
C | - | -■ | 3 | 4 | 22 | EE | ||
D | - | — | 1 | 2 | 3 | D | ||
E | — | 2 | - | 1 | ||||
B | 1 | 1 | 2 | 222 | EEE | |||
C | - | - | 3 | 33 | DD | |||
D | - | - | 1 | 4 | B | |||
E | - | 2 | _ | |||||
B | 1 | 1 | 2244 | EEEE | ||||
C | - | - | 333 | DDD | ||||
D | - | 2 | C | |||||
E | — | |||||||
Anschließend wird das oben aufgestellte Matrix-Fortschreibeverfahren
mit der OPT-Stapelterminologie interpretiert. Wenn Cz. 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
YO 9 73 039
509807/1012
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 973 039
5 0 9807/1012
Jetzt folgt eine formale Struktur die festlegt, daß der Algorithmus
mit einem Durchgang dieselbe Ausgabe liefert, wie der OPT-Algorithruus
mit zwei Durchgängen, der in der oben erwähnten Veröffentlichung von Mattson beschrieben ist. Um diese formale Struktur
zu entwickeln, hat man zunächst erweitete Notierungen, die vor her verwendet wurden. Die Zahlenmatrix erscheint jetzt als Teilfunktion
H . Die vorher verwendeten Ausdrücke A und B werden jetzt formal definiert. Der Ausdruck k ist irgend eine Stapelposition,
der Ausdruck γ ist das τ-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 Folgen 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 η die Anzahl von Seiten in Σ
ist, dann ist definiert:
*t (τ) = M,ntl - ik|jaeIt((T,a) ,k) cHt>.
Bt (τ) = It - .{aflke[1,nt]((T,a) ,k)eHt>.
Die Reihe S(α) ist definiert als die Folge {((τ,α),γτ)ta
< τ< t+1 , 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 = oo) . Außerdem ist zu definieren:
Yt = 1 und Yt+1 = 1;
α
α
γ = min {klk > γ _-, und keA. (τ)}
T — TI t
YO 973 039
509807/1012
zur Erfüllung von t < τ <_ t.
Dann ist H .. = HtuS(a).
Dann ist H .. = HtuS(a).
Mit dieser Definition der Folge H kann man jetzt beweisen
Lehrsatz I
Wenn (T,ct,k) en. ist, dann ist k die OPT-Stapelposition für die
Seite α zur Zeit τ. Dieser Lehrsatz folgt aus
Hilfssatz I: Wenn H. den stabilen Wert des OPT-Stapels zur Zeit
t angibt, dann bestimmt S (ot) die OPT-Stapeleintragun'gen für
α = ^t+i 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 γ nicht einer anderen
Seite zur Zeit τ + 1 zugeordnet wurde, d.h., γ ist der Satz
A, (τ + 1). Andernfalls wird α aus der Position γ verschoben,
t 'τ
wenn γ einer anderen Seite zugeordnet wurde, d.h., γ & A. (τ+ 1).
In diesem Fall wird seine Stapelposition zur ersten nicht zugeordneten Stapelposition, die größer ist als γ .
Der OPT-Algorithmus kann wie folgt interpretiert werden:
Eine Seite α, deren Stapelpositon zur Zeit τ=γ ist, bleibt in
dieser Position zur Zeit τ + 1, weil
1. Die Stapelposition der angezogenen Seite zur Zeit τ + 1 kleiner
ist als γ (d.h., α wird nicht aufgerufen) oder
2. wenn α aufgerufen wird, hat es eine höhere Priorität als alle
YO 973 039
509807/1012
amaeren Aufrufer für seine Position. Das kann jedoch nur pas- .
sieren, wenn γχ keiner Seite mit höherer Priorität zugeordnet
wurde-
Wenn laan annimmt, daß α in der Stapelposition Ύτ zur Zeit τ steht
und die Seite g zur Zeit τ + 1 angezogen wird und ihre Position
Δ ist, dann bleibt α in der Position γ , wenn γ >
Δ ist. Die Stapelposition 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
> γ 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öheren Priorität
als α bereits zugeordnet. Somit kann α um alle Stapelpositionen
> γ 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
α zur Zeit τ + 1 ist somit gegeben durch
min {kjk^ γτ und keAt(r +1)}.
In der Definition 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 Α.,(τ) und B (t) aufgeführt.
1) Bt(T) f. Bt(x + 1)
2) iA
3) |At| Jt|
4) iA t(T) i^At^ + 1} i """^ At(x + 1) = At(i:)u
5) |At(T) J= At(x + D I ---*■ At(T + D = (At(T) - {j})u{k}
6) . (a) At(t) = [2,nt]
(b) Bt(t) =Et - {xt>.
Wenn α vorher angezogen wurde
YO 973 039
YO 973 039
509807/1012
7) A t+1fr) - At(T) -ίγτ>
Wenn u vorher nicht angezogen wurde
= Σ . u{a}
= Σ . u{a}
und | nt+1 | (τ) | it+ 1 | 1 <_ τ £ t |
At+1 | (τ) | = At(T) | 1 < τ < t | |
9) | Bt+1 | des | = Bt(T) | und des P-Stapels |
10) | Definition | L-Stapels | ||
Den L-Stapel und den P-Stapel erhält man aus den Sätzen A (τ) und
Bt (τ), τ 5 t wie folgt:
definiere t. und α. für i = 1 ... η mit den Formeln
z± = min{Sj |Bt(S) j = i} i ■■
i = 1,...,n-1
1) - 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-
U-. I 1-1
grenzt wurden und S (α.) als die zur Zeit t verkürzte Reihe des
(α ) definieren. Somit ist
S (u±) ={ (j,^,γ.) J (J1O1 ,γ.)εβ(α±) und j =t±,...,t}.
X soll der Satz [1,t] χ Zfc χ L1,n] und Gfc = Xfc - Hfc sein.
n-1
Dann ist G. = u S (α.).
Dann ist G. = u S (α.).
YO 973 039
509807/1012
Definiere P als Satz von ganzen Zahlen (1, n.) in der durch
1
die Reihen S (α.) induzierten Reihenfolge.
die Reihen S (α.) induzierten Reihenfolge.
Dann ist
Pt(1) =1
'P. (j) = k wenn und nur wenn
für j =
2"'"n
Definiere außerdem L als Satz von Seiten Σ in der durch die
Folge α. ... α induzierten Reihenfolge, d.h. in der LRU-Reihenfolge.
Dann ist
Lt(j) = «n_j+1 für j =1, ... η.
Mit diesen Definitionen ergeben sich die folgenden Hilfssätze.
Hilfssatz 2: Wenn CtxXZ, zur Zeit t + 1 angezogen wird, ist die
Ausgabe yv gegeben durch die Formel
γκ = min{kj3j (t,a.,k)eS1(α ) und j
< κ)
= min{Pt(j) I j
>n-K-1}
Hilfssatz 3: Wenn P. und L den Paaren A und B entsprechen und
ο^,εΣα^ die nächste angezogene Seite ist, dann sind die Stapel P^+1
und L- fortgeschrieben, um das ΟΡΐ-Verfahren mit einem Durchgang
dieselben, wie die Stapel P.+1 und L1 entsprechend den
Paaren A. ■ und B. *.
Diese beiden Hilfssätze bestätigen die Äquivalenz des OPT-Algorithmus
mit einem Durchgang gegenüber deir. OPT-Algorithmus mit zwei
Durchgängen. Dieses folgt daraus, daß man für jeden Eingang denselben Ausgang erhält und die fortgeschriebenen Stapel P4.- und
1 t+i
L1 der Teilfunktion Hfc - entsprechen.
YO 973 039
509807/1012
Bevor die Struktur des erfindungsgemäßen Systemes beschrieben
wird, sollen an diesem Punkt bestimmte Beobachtungen zur Arbeitsweise der Erfindung gemacht werden.
1. Die Arbeitsweise des Systems ist ein kontinuierlicher Prozeß, der die Reihe von MMOWerten direkt aus der Eingabe
erzeugt, ohne daß eine Vorausschau nötig wäre.
2. Die ganze zu speichernde Information ist eine Tabelle in der die Anzahl von Elementen gleich der Programmgröße
im Seitenmaß ist.
3. Viele Schritte der Gesamtoperation können als parallele
Operation aufgefaßt werden, die z. B. einen Assoziativspeicher verwenden.
4. Das System gestattet den on-line-Betrieb und erübrigt dadurch
die Aufzeichnung der Referenzreihe.
Das Systems läßt sich am vorteilhaftesten in einem virtuellen Computer oder einer Seitenmaschine anwenden. 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, die 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.
YO 9 73 039
509807/1012
Nach dem Erfindungsgedanken, erfolgt die tatsächliche SeitenVerwaltung
in einer virtuellen Maschinen nach dem Kriterium der letzten Benutzung (LRU) .. Dieses Kriterium ermöglicht die oben
erwähnte Aufteilung der Tabelle des Systems, da nur diejenigen
Seiten im Hauptspeicher stehen, d. h. Seitenrahmen belügen, entsprechende Eintragungen im p-Stapel haben müssen, der mit der Datenverarbeitungsstraße
auf den neuesten Stand gebracht wird. Bei dieser Anordnung kann derjenige Teil des Systems, der die Operation
des oben beschriebenen Ik-Operators bewirkt, mit ZE-Geschwindigkeit
arbeiten und braucht nur groß genug zu sein, um nur die Seiten darzustellen, die Hauptspeicherrahmen belegen.
Der im nachfolgend beschriebenen Ausführungsbeispiel vorgesehene
LRU-Stapel wurde genauer beschrieben von W. F. Beausoleil,
D. T. Brown, and D. E. Phels, "Magnetic Bubble Memory Organization",
IBM Journal of Research and Development, November 1972. Die Erfindung umfaßt in ihrer breitesten Form, also zusätzliche
''-Operatorblocks, die wieder die MMC-Reihe herausziehen. Im Ausführungsbeispiel wird angenommen, daß die Umgebung, d. h. das
Datenverarbeitungsgerät, ein virtuelle Maschine ist, wodurch der
Pseudo-OPT-Stapel in zwei Teile unterteilt wird, in denen die ganzen Zahlen enthalten sind, die die Mindestspeicherkapazitäten
(MMC) der entsprechenden Seiten der Seitenreferenzreihe darstellen.
Der erste Teil des Stapels besteht aus einer Anzahl von Registern m, die genauso groß ist wie die Anzahl von Seiten des
Programmes, die im ersten Speicher aufgenommen werden können. Im zweiten Teil sind die Seitennamen und die zugehörigen MMC
(entweder n-m Seitennamen oder alle η Seitennamen des Programmes) an einer anderen Stelle im Speicher des Datenverarbeitungsgerätes
wie einem Sekundärspeicher oder einem geschützten Bereich des Primärspeichers gespeichert. Entsprechend ist der LRU-Stapel
in ähnlicher Weise unterteilt, d. h., ein erster Teil des LRU-Stapels
besteht aus einer Gruppe von Registern, deren Anzahl genauso groß ist wie die Anzahl von Seiten m des Programmes, die
YO 9 73 039
509807/1012
im Primärspeicher aufgenommen werden können, und in einem zweiten
Teil, in dem die Seitennamen und die dazugehörigen LRU-Werte im Sekundärspeicher oder einem anderen geschützten Bereich
gespeichert sind. Die Anzahl von dem ersten Teil des LRU-Stapels bildenden Registern ist gleich der Anzahl von dem ersten Teil
des Pseüdo-OPT-Stapels bildenden Registern. Beim Betrieb des
Systemes mit η Seiten im Programm enthalten die Seitennamen im
ersten Teil des LRU-Stapels zu einem gegebenen Zeitpunkt notwendigerweise
diejenigen Seiten mit LRU-Werten zwischen 1 und m, und die Seitennamen im zweiten Teil des LRU-Stapels und die zugehörigen
LRU-Werte umfassen die LRU-Werte von m+1 bis n.
Da beim Betrieb der Erfindung der erste Teile des Pseudo-OPT-Stapels
nicht alle MMC-Werte enthält, die anderen stehen ja an einer anderen Stelle im Speicher, wird zur größeren Vereinfachung
und zum schnelleren Betrieb der Erfindung die kleinste fehlende Zahl von den Zahlen, die sich in der Position 2 relativ
zur Position genau oberhalb der geretteten LRU-Position befinden, erzeugt, anstatt den kleinsten MMC-Wert unter der Position
der geretteten LRU-Position aufzufinden, wie es für den Algorithmus oben beschrieben wurde. Diese erzeugte kleinste
fehlende Zahl ist die unterste Mindestspeicherkapazität, die erwünscht ist, und in die zweite Position des Pseudo-OPT-Stapels
bei der Umordnung der anderen Positionen in diesem Stapel gesetzt wird, wie es bei der Erklärung des Algorithmus beschrieben
wurde und anschließend im Zusammenhang mit dem Ausführungsbeispiel
beschrieben wird.
Die Arbeitsweise des Ausführungsbeispieles kann also in Umrissen
wie folgt beschrieben werden:
1. Der Ήΐ-Operator ordnet dynamisch alle Seitenreihen um
die Reihenfolge der vergangenen Referenzen wiederzugeben.
YO 9 73 039
509807/1012
a) wenn die als nächste angezogene Seite im LRU-Stapel
steht, wird die Stapelposition k der angezogenen Seite an den -Operator gegeben.
b) In anderen Fällen wird ein Seitenfehler erzeugt. Der
Seitenrahmen mit dem höchsten LRU-Wert ändert seinen Inhalt. Eine E/R-Operation wird eingeleitet und ein
im Speicher stehendes Programm ausgeführt, um die gesamte Information für den Πί-Operator auf den neuesten
Stand zu bringen.
2. Der TTi^-Operator erzeugt die kleinste fehlende Zahl.
In Fig. 1 ist in Form eines Blockdiagrammes das Konzept der Erfindung
dargestellt. Der Teil im gestrichelten Block soll das Datenverarbeitungsgerät 1 darstellen, welches als Seitenmaschine
betrieben wird, una den IfL-operator, der das Zusatzgerät ist,
d. h. die Erfindung. Das Datenverarbeitungsgerät enthält eine
Zentraleinheit ZE 2, die am besten von einem Vielzweckrechner gebildet wird, der für diejenigen Operationen programmierbar ist,
die innerhalb der Möglichkeiten eines Vielzweckrechners liegen. Darstellungsgemäß enthält das Datenverarbeitungsgerät einen Primärspeicher
3 und einen Sekundärspeicher 4, die miteinander über einen geeigneten Datenkanal in Verbindung stehen und Information
untereinander und mit der ZE 2 austauschen. Um Information zwischen dem Primaärspeicher 3 und dem Sekundärspeicher 4 auszutauschen
ist eine Stufe vorgesehen mit der Beschriftung "programmierbare Einrichtung zur Seitenverlagerung". Obwohl diese Stufe
als separates Ganzes dargestellt ist, soll eigentlich gezeigt werden, daß in dem Datenverarbeitungsgerät Einrichtungen vorhanden
sind wie z. B. ein Kanal oder innerhalb der ZE 2 Einrichtungen, die die Ausführung der ER Operation zwischen Primär-
und Sekundärspeicher übernehmen. Die mit der Zahl 6 und der Beschriftung " programmierbare Einrichtung zum Fortschreiben der
LRU-Liste" bezeichnete Stufe wird genauso benutzt wie die Stufe 5
YO 9 73 039
509807/ 1012
und ist eigentlich Teil des Datenverarbeitungsgerätes, welches für die Ausführung der in der Beschriftung festgelegten Operation
programmiert wird. Ähnlich sind die Stufen 7 und 8 mit der Beschriftung "programmierbare Einrichtung zum Fortschreiben der
OPT-Liste" und "programmierbare Einrichtung zur Behandlung der Seitenausnahme in der OPT-Liste" im Blockdiagramm der Fig. 1
aus denselben Gründen enthalten. Die Stufen 5, 6f 7 und 8 sind
ebenfalls im Datenverarbeitungsgerät enthaltene strukturen, die
für die Ausführung der in der entsprechenden Beschriftung angegebenen Operation programmiert v/erden. Im Diagramm sind die Stufen
5,6,7 und 8 als durch die ZE 2 gesteuert dargestellt.
Die Stufe 9 mit der Beschriftung ©^-Operator enthält darstellungsgemäß
zwei Teile, d. h. eine LRU-Teilliste 11 und eine LRU-Restliste
13. Diese Teile 11 und 13 bilden zusammen die LRU-Liste, wobei der Teil 11 maschinell eingerichtet ist, beispielsweise
in Form eines Registerstapels und der Teil 13 irgendwo im Speicher
des Datenverarbeitungsgerätes steht. Die LRU-Liste ist bekanntlich eine Liste aller Seitennamen im Programm und die LRU-Gewichtszahlen
gehören zu diesen entsprechenden Seiten. Wenn also angenommen wird, daß η Seiten im Programm vorhanden sind, dann
hat jede dieser Seiten nach dem Kriterium der jüngsten Benutzung oder dem LRU-Kriterium ein anderes LRU-Gewicht zwichen den Werten
1 bis n. An der Stelle, an der die LRU-Liste in die Teile und 13 nach Darstellung in Fig. 1 aufgeteilt ist, wo der To.il
der Stapelteil ist, wird der Teil 11 so gewählt, daß er mindestens so viele Seitennamen m und ihre zugehörigen LRU-Gewichtszahlen
enthalten kann, wie Programmseiten im Primärspeicher 3 aufgenommen
werden können. Wenn im Teil 11 nur m von η Seitennamen enthalten sind, dann haben die zu den entsprechenden Seiten gehörenden
LRU-Gewichts zahlen Werte zwischen 1 und m, und die LRU-Restliste
im Speicher, die die Seitennamen (n-m) enthält, übernimmt andere LRU-Werte zwischen (m+1) bis n.
YO 9 73 039
5 0 9 8 0 7/1012
Die Stufe 19 mit der Beschriftung //^-Operator ist die Pseudo-OPT-Liste
und die zugehörige Schaltung. Diese Liste enthält darstellungsgemäß im ersten Teil 15 einen Teil der Liste mit der Bezeichnung
Pseudo-OPT-Teilliste. Dieser Teil 15, die Pseudo-üPT-Teilliüte,
ist maschinell ausgeführt und umfaßt einen Registerstapel, in dem die Register eine geordnete Folge der Adressen
1 bis m bilden. An jeder Adresse, d. h. in jedem Register, steht der Warne der Seite und die zugehörige MMC- oder OPT-Stapelstrecke,
wie sie durch den OPT-Stapel-Algorithmus bestimmt wurde. Die Namen
der Seiten im Teil 15 der Pseudo-OPT-Teilliste sind diejenigen Namen, die auch in der LRU-Teilliste 11 stehen.'
Das Teil 17 der OPT-Liste kann entweder der Rest der Pseudo-OPT-Liste
im Speicher sein, s. h. sie enthält Namen und MMC-Zahlen an den Adresspositionen (m+1) bis n, die die restlichen Seitennamen
und die zugehörigen OPT-Stapelstrecken sind. Andererseits kann der Teil 17 auch die gesamte Pseudo-OPT-Liste sein, d. h.
die Adresspositionen 1 bis η enthalten und dann steht an jeder dieser Adresspositionen ein Seitenname und die zugehörige OPT-Zahl
oder MMC-Zahl.
Wenn beim Betrieb der Erfindung die nächste Referenz von der ZE abgegeben wird und der Seitenname mit der zugehörigen LRü-Zahl
in der in der Maschine befindlichen LRU-Teilliste 11 steht, dann ist die Adressposition ^ im Konzept ein Teilerpunkt Pseudo-OPT-Teilliste
15, d. h. diese wird in die Adresspositionen 1 bis (£-1) und ι bis m unterteilt. In der Operation des /ZLr-Operators
laufen die folgenden Operationen ab.
1. Die Adresse k unter den Adressen & bis m wird sichergestellt.
2. In den in der Gruppe ^ bis (k-1) enthaltenen Adressen,
sind die folgenden Reihen von Adressen markiert, (£.+a) ,
(£+b), (£+c)... bis (k-1), wobei ß+a) der kleinste
YO 973 039
509807/1012
Adreßwert ist, der größer ist als I , so daß C (% +k)
< C (l) ist, worin (&-b) der kleinste Adresswert ist,
der größer ist als Q, +a) , so daß C(£+b)
< C(& +a) ist usw., worin C(i) der Wert der ganzen Zahl C an der Adresse ist.
3. Die kleinste fehlende Zahl in den Zahlen zwischen 2 bis
(C +1), worin C der größte ganzzah Adressen 2 bis (&-1) ist, wird erzeugt.
(C +1), worin C der größte ganzzahlige Wert C an den
TQ 3. X ΠΙ el X
4. Die MMC- oder OPT-Zahlen an den Adressen 2 bis (.1-1) v/erden
um eine Adresse nach unten verschoben, d. h., diese Zahlen stehen jetzt entsprechend an den Adressen 3 bisS, .
5. Die erzeugte kleinste fehlende Zahl wird auf die Adresse 2 gesetzt.
6. Die MMC-Zahl oder die OPT-Zahl in der Reihe der markierten
Adressen wird entsprechend in die nächste Adresse in der Reihe geschoben, und die Zahl in der Uert höchsten
Adresse in dieser Reihe wird in die Adresse k geschoben und die Zahl, die ursprünglich an der k stand, wird nicht
mehr beachtet.
Die erzeugte kleinste fehlende Zahl ist die MMC- oder OPT-Stapelzahl
für die angezogene Seite.
Wenn der Name der angezogenen Seite im Teil 11 der LRU-Liste oder im Teil 15 der OPT-Liste steht, kann die Fortsehreibung
des Teiles 15 auf den neuesten Stand zu einer Verdoppelung des MMC-Wertes oder des OPT-Wertes in der OPT-Gesamtliste im Speicher
führen. Eine solche Liste kann kontinuierlich auf dem neuesten Stand gehalten werden, um diese Verdoppelungen auszuschalten,
oder die Liste kann vorzugsweise jedesmal bei einer Seitenausnahme
auf den neuesten Stand gebracht werden, wenn die OPT-Gesamtliste adressiert werden muß. Es folgt daher eine Beschrei-
YO 9 73 039
509807/ 1012
bung der Operationen, die ablaufen, wenn eine Seitenausnahme
entsteht, die eine Seite des Programmes anfordert, die im Primärspeicher
steht.
Wenn-eine solche Seitenaufnahme auftritt, werden programmierbare
Einrichtungen für eine Seitenverlagerung 5, d. h'. das Seitenverlagerungsprogramm
aufgerufen und es erfolgt ein Austausch zwischen dem Primärspeicher 3 und dem Sekundarspeicher 4, in dem
die am längsten unbenutzte Seite im Primärspeicher in den Sekundärspeicher und die angeforderte Seite dafür in den Primärspeicher
gesetzt wird.
Wenn eine Seitenaufnahme auftritt, wird die programmierbare Einrichtung
zur Fortschreibung der OPT-Liste 7 betätigt, d. h., es
wird ein Programm aufgerufen, welches OPT-Gesamtliste im Speicher konsestent macht, d. h. doppelte MMC- oder OPT-Zahlen werden
eliminiert. Die programmierbare Einrichtung zur Fortschreibung der LRU-Liste 6 wird bei Auftreten einer Seitenaufnahme
betätigt und die LRU-Liste wird auf den neuesten Stand gebracht oder fortgeschrieben, d. h. , es wird dasjenige Programm aufgerufen,
welches den Seitennamen der in den Sekundärspeicher gesetzten Seite in die LRU-Restliste 13 setzt, wo er den LRU-Wert
von (m+1) zugeordnet erhält. Der Name der angeforderten Seite wird in die LRU-Teilliste 11 gesetzt und erhält den LRU-Wert 1.
Diejenigen Seiten in der LRU-Liste 11, die vor -der Seitenausnahme
der LRU-Gewicht 1 bis (m-1) hatten, werden an diesem Verbindungspunkt
in ihren LRU-Werten entsprechend um 1 erhöht und haben jetzt die LRU-Gewichte 2 bis m. Gleichzeitig werden auch
die LRU-Gewichte derjenigen Seiten in der LRU-Restliste 13, die vor der Seitenausnähme zwischen (m+1) bis zu dem Gewicht, welches
eins kleiner ist als das Gewicht der angeforderten Seite, lagen,, entsprechend um eins erhöht.
Jetzt wird eine programmierbare Einrichtung zur Behandlung der
Seitenausnahme in der OPT-Liste im Speicher betätigt. Da diese
OPT-Liste im Speicher jetzt in Konsestenζ gebracht ist, wird
YO π 73 039
B 0 9 8 0 7 / 1 0 1 Ί
die gesamte OPT-Liste an der Adressposition adressiert, die denselben
Wert hat, wie das zu der angeforderten Seite gehörende LRU-Gewicht vor der überträgung in den Primärspeicher. Nachher
werden die Operationen auf der gesamten OPT-Liste ausgeführt, die oben in Verbindung mit der Pseudo-OPT-Liste 15 beschrieben
wurden, in der der angezogene Seitenname stand. Nach Ausführung dieser Operationen auf der OPT-Liste im Speicher verbleibt die
Übertragung der Information an den AdressPositionen 1 bis m in
der OPT-Liste im Speicher in die Pseudo-OPT-Teilliste 15. Nach
Ausführung dieser Operation, sind sowohl die LRU-Liste als auch die OPT-Liste im Maschinenteil und im Speicher vollständig auf
dem neuesten Stand und für die Bezugnahme auf die nächste Seite vorbereitet.
Der maschinelle Teil 11 der LRU-Teilliste, kann in geeigneter
Weise einen Stapel von mindestens m Registern enthalten, von denen jedes mindestens die Menge m aufnehmen kann. Der maschinelle
Teil 15 der Pseudo-OPT-Liste, kann ebenfalls in geeigneter Weise eine Reihe von mindestens m Registern in einer geordneten
Reihenfolge enthalten, wobei jedes dieser Register mindestens die Menge η aufnehmen können soll. Zu den letztgenannten
Registern gehören Einrichtungen zum Einschalten der Verschiebung des Inhaltes eines Registers in ein anderes.
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 Blöckform 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-Schnellspeicher 14 mit kleiner Kapazität gezeigt. DGr Sekundärspeicher 12, der z. B. von einer
Plattendatei gebildet werden kann, ist mit dem Primärspeicher
γθ 973 039
509807/101?
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. Der 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
v/ird, 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 Blockadresse im Sekundärspeicher
12 für den Block in der entsprechenden Bolckposition 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 16 können von Zeit zu Zeit verändert v/erden.
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.
YO 973 039
509807/1012
3 317 89 8 vom 2. Mai 1967. Diese Elemente sind Assoziativspeicher-Lese/Schreib-Speicherelemente.
Die Speicherelemente 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-Speicherelernente verwendet
werden. Die Speicherelemente im Assoziativspeicher 16 mit
der Zahlenbezeichnung 416 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 Steurung findet sich
in den Fign. 2J bis 2L. Der Teil des Assoziativspeichers 16 mit der Beschriftung LRU-FeId bildet den LRU-Kasten, wobei in diesem
Ausführungsbeispiel das LRU-Kriterlum angewandt wird. Der Rest
des Assoziativspeichers 16 in den Fign. 2E und 2F kann treffenderweise als "Verzeichnisanlage" bezeichnet werden.
Die in den Fig. 2ΓΙ 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,
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 2V ist der "MIN-Kasten" gezeigt, der die MIN-Operation, d. h. den MIN-Operator gemäß obiger Beschreibung
ausführt. Der MIN-Kasten empfängt seine Eingänge von der LRU-Zahl,
wie sie von der Fig. 2G bis 2J gezeigten Schaltung geliefert
wird und von dem Impulsgenerator 24. Der MIN-Kasten besteht
YO 973 039
509807/1012
aus acht Registern mit den Zahlenbezeichnungen 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 19 72
verschoben werden.
Wenn im Betrieb des in Fig. 2 gezeigten Systemes die ZE 10 einen Speicherzugriff fordert, lädt sie ein Register 428 und liefert
gleichzeitig einen Impuls auf eine Leitung 2 86. 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 Flipflops auf
lauter Nullen setzt. Das Einschaltsignal für die monostabile Kippschaltung Al auf Leitung 2 88 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 4 34 angelegt, um die Blockzahl vom
Register 418 (Fig. 2A) in das Blockzahlenfeld des Argumentenregisters
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 eine Leitung 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
YO 973 O39
509 807/1012
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 Übereins tiiranungs-/\nzeige-Flipflops in den Fign.
2C und 2D 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 monostabile Kippschaltung A3 einschaltet, damit sie ihr Einschaltsignal auf eine Leitung 292 gibt. Die Leitung
29 2 endet im Kabel 424 und das Einschaltsignal von der monostabilen Kippschaltung A3 wird über die Kabel 424, 426 und 42 8
ü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 erzeugt, welches monostabile Kippschaltung A4 einschaltet und
dadurch ihr Einschaltsignal auf der Leitung 294 erzeugt, die im Kabel 42 4 endet. Das auf dieser Leitung liegende Signal wird
über die Kabel 424 und 426 an ein Schaltglied 442 (Fig. 2C) angelegt, und dadurch die Zustandprüfung dos EOL-Flipflop ermöglicht.
Wenn das EOL-Plipflop auf Eins steht, erscheint ein Impuls
auf der Leitung 298, wenn es auf Null steht, erscheint ein Impuls auf der Leitung 296. Die Leitungen 29 8 und 296 enden beide
im Kabel 420. Mit dem Impuls auf der Leitung 296 wird die nonostabile
Kippschaltimg Bl eingeschaltet, i'it dem Impuls auf der
Leitung 29 8 wird die monostabile Kippschaltung Cl im Impulsgenerator 24 eingeschaltet. Der einfacheren Erklärung halber wird
YO 973 039-
509 807/101?
in der Beschreibung des in Fig. 2 gezeigten Systemes angenommen,
daß im Assoziativspeicher eine Übereinstimmung vorliegt und somit v/erden die Vorgänge beschrieben, die folgen, v/enn 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 4 36 an ein ODER-Glied 440 geleitet wird. Die Ausgabe des ODER-Gliedes 4 40 bewirkt an diesem Punkt das
Lesen des übereinstimmenden Wortes im Assoziativspeicher auf das Speicheldatenregister 446 (Fign. 2K und 2L). Das Signal auf der
Leitung 300 wird auch über die Kabel 424, 426 und 428 übertragen und stellt die LRü-Halteregister alle auf Null zurück.
Wenn die monostabile Kippschaltung Bl abschaltet wird ein Signal erzeugt, welches eine monostabile Kippschaltung B2 einschaltet.
Das dadurch erzeugte Einsch.altsignal 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
Sch.iltglied 448 (Fig. 2L), um den "realen Block" vom Register
446 in den linken Teil des Registers 450 (Fig. 2A) zu leiten. Das Signal auf der Leitung 302 v/ird auch über die Kabel 424 und
426 an ein Schaltglied 452 (Fig. 2Λ) angelegt, um die "Adresse
im Block" vom Register 418 auf den rechten Teil des Registers 450 zu leiten. Außerdem wird das Signal auf der Leitung 302 über
die KaJ)Gl 424, 126 und 42 8 an ein ODER-Glied 4 3O (Fig. 2J) geleitet,
um das LRU-FeId der Argumentenmaske ganz auf Null zurückzustellen.
Das Signal auf Leitung 302 wird auch an ein Schaltglied 454 (Fig. 2L) angelegt, um die LRU-Zahl an das LRü-Halteregister
zu leiten. Da die LRU-Zahl jetzt im LRü-Halteregister
steht (Fig. 2L), kann sie jetzt als Eingabe zum MIH-Kasten benutzt
v/erden 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 monostabile Kippschaltung IU
ein. Die Arbeitsweise der monostabilen Kippschaltungen mit der
YO 973 039
509807/1012
- 50 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 tJbereinstimmung-Anzeige-Flipflop
auf Eins stellt. Das Signal auf der Leitung 304 wird auch über die Kabel 424, und 42 8 und die Leitung 304 an die Leitung 2 82
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 l wird z. B. dargestellt als 10000000. Die Zahl 2 wird dargestellt Oioooooo
usw. bis zur Zahl 8, die dargestellt werden könnte als 00000001.
Die oberste Reihe der UND-Glieder in Fig. 2K direkt links von der Leitung 2 82 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 l-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 Schaltkreis weiter nach unten fortgesetzt
auf einer der Leitungen in der Gruppe mit dan Bezeichnungen 456, 458, 460, 462, 464, 466, 468 und 47O. Wenn die LRU-Zahl
z. B. eine 6 ist, wird das UND-Glied 474 eingeschaltet 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 4 72 ü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 sbellt das Blockzahlenfeld der Argumentenmaske
auf lauter Hüllen. Der Impuls auf der Leitung 304 stellt auch das LRU-FeId des Argumentenregisters auf lauter Nullen zurück
(Fign. 2G, 2H und 21) .
YO 9 73 039
509807/1012
.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 zu diesem Zeitpunkt, weil alle LRU-Zahlen auf die nächste erhöht v/erden müssen. In diesem Zusammenhang ist zu beachten,
daß angelegete Schiebeimpuluse (Fig. 2C und 2D) durch
den rückgestellten Zustand der Übereinstimmungs-Anzeige-Flipflops
eingeschaltet werden. Die Schiebeoperation erfolgt mit den Speicherelementen 406, 408 und 410.
Zum Verständnis der Schiebeoperation wird auf die Fign. 3Λ, 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 4 88 ein Zwischenflipflop ist. Der erste Schiebeimpuls auf der Leitung 4 76 leitet den Inhalt
den Flipflop 480 (Fig. 3A) auf das Flipflop 488 (Fig. 3B). In Fig. 3C ist ein geeignetes Beispiel für ein Speicherelement 4IO
gezeigt, in dem das Flipflop 484 das Informationsbit und das Flipflop 490 ein Zwischenflipflop ist. Bei Auftreten dieses ersten
Schiebeimpulses auf der Leitung 4 76 wird der Inhalt des Flipflops 4 82 (Fig. 3B) auf das Flipflop 490 im Speicherelement
410 (Fig. 3C) geleitet. Der zweite Schiebeimpuls erscheint jetzt auf der Leitung 4 78, die im Speicherelement 406 (Fig. 3A) den Inhalt
des Flipflops 486 auf das rlipflop 4 80 leitet. Ähnlich leitet
der Schiebeimpuls auf der Leitung 478 im Speicherelement (Fig. 3B) den Inhalt des Flipflops 4 8Ö auf das Flipflop 482 und
YO 973 039
509807/10 t?
im Speicherelement 410 (Fig. 3C) den Inhalt des Flipflops 490 auf das Flipflop 4 84. Auf diese Weise wird die einzige 1 in der
LRU-Zahl um eine Position nach rechts verschoben. In die äußerste links 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 308, 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 dadurch
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 B6 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 43O 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-Glif 5.
432 angelegt, dessen Ausgabe das Blockzahlenfeld der Argumentenmaske auf lauter Einsen setzt.
Wenn die monostabile Kippschaltung B7 ausgeht, schaltet das dadurch
erzeugte Signal eine monostabile Kippschaltung B8 ein, die ein Signal auf der Leitung 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 tibereinstimmungs-Anzeiger mit Ausnahme
des einen zurückgestellt werden, der zu dem Wort im Asso-
YO 973 039
509807/1012
-53- 2A33377
ziativspeicher gehört, welches dieselbe Blockzahl enthält, die
auch im Register 446 steht. Diese Blockzahl existiert gleichzeitig im Argumentenregister.
Wenn die monostabile Kippschaltung B8 ausgeht, wird eine monostabile
Kippschaltung B9 eingeschaltet und erzeugt ein Signal auf der Leitung 316, welches über das Kabel 428 an das ODER-Glied
49 6 ü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, 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 318, wenn das Anderungs-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 3 32. Der Impuls auf der Leitung 324 wird an ein ODER-Glied 49 8 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
YO 973 039
509807/1012
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 eine Seitenausnahme auf, die 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 29 8 aus, welches ein 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
Cl auch auf den Leitungen 458, 46Or 462, 464, 466, 468 und 470
und setzt das LRU-FeId der Argumentenmaske (Fign. 2G-2J) auf lauter Einsen. Das Signal auf der Leitung 326 wird auch an das
ODER-Glied"475 angelegt und stellt das Blockzahlenfeld der Argumenten
maske auf lauter Nullen zurück. Außerdem setzt das Signal auf der Leitung 326 das LRU-FeId des Ärgumentenregisters 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ß.
Wenn die monostabile Kippschaltung Cl ausgeht, schaltet das dadurch
erzeugte Signal eine monostabile Kippschaltung C2 ein, die dann ein Signal auf der Leitung 32 8 erzeugt. Das Signal auf der
Leitung 32 8 wird an ein ODER-Glied 440 angelegt und die konsequente Ausgabe dieses ODER-Glieder 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.
YO 9 73 039
509807/1012
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 49 2 (Fig. 2C) angelegt, dessen resultierende Ausgabe als erster Schiebeimpuls wirkt.
Wenn die monostabile Kippschaltung C3 ausgeht, schaltet das dadurch
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 4 angelegt (siehe Fig. 2D), dessen sich dann ergebender Ausgabe als zweiter Schiebeimpuls
wirkt.
Wenn die monostabile Kippschaltung C4 ausgeht, schaltet das dadurch
erzeugte Signal eine monostabile Kippschaltung C5 ein, die
ein Signal auf der Leitung 334 erzeugt. Dieses Signal wird an. das
ODER-Glied 4 44 angelegt, dessen sich dann ergebender Ausgang das übereinstimmende Wort aus dem Assoziativspeicher in das Datenregister
446 liest.
Wenn die monostabile Kippschaltung G5 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 LRü-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 "A-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
YO 9 73 039
509807/1012
also ein Signal auf der Leitung 338 und schaltet die itionostabi-Ie
Kippschaltung C7 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 Bestätigung die
Blockzahl vom Register 418 in das Austauschadreßregister leitet. Das Signal auf der Leitung 342 wird außerdem an ein ODER-Glied
5O6 (Fig. 2L) angelegt, dessen Ausgang an ein Schaltglied 508 angelegt wird. Durch Betätigung des Schaltgliedes 5O8 wird der
Inhalt des Realblockfeldes des Registers 4 46 in das primäre Adreßregister (Fig. 2B) geleitet. Das Signal auf der Leitung 4
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 C7 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 49 8 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 Flipflop 514 geprüft wird. Wenn das Flipflop 514 auf "1" steht, erscheint ein Signal auf der Leitung 360,
wenn es auf "0" steht, erscheint ein Signal auf der Leitung
YO 9 73 039
509807/1012
Mit einem Signal auf der Leitung 360 wird die monostabile Kippschaltung
ClO eingeschaltet und das Signal auf der Leitung 362 wird durch ein ODER-Glied 4 22 weitergeleitet zum Einschalten
der monostabilen Kippschaltung Al. Das Einschaltsignal von der
monostabilen Kippschaltung ClO wird nur zur Verzögerung benutzt und wenn die Zeltsperre der monostabilen Kippschaltung ClO abgelaufen
ist, wird ein Signal erzeugt, welches über das ODER-Glied 522 läuft und die monostabile Kippschaltung C9 wieder einschaltet.
Wenn das Schaltglied 498 (Fig. 2D) 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 Signales auf der Leitung 348. Das Signal auf der Leitung 348 wird dann an ein Schaltglied 524 (Fig. 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 das ODER-Glied 502 (Fig. 2A) angelegt, dessen Ausgang an ein Schaltglied 504 geleitet wird, durch dessen Betätigung die Blockzahl
aus dem Register 418 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 realten Blockfeldes des Registers 446 in
das primäre Adreßregister (Fig. 2B) geleitet wird. Außerdem wird das Signal auf der Leitung 35O an ein Schaltglied 510 (Fig. 2L)
angelegt und 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 Lei-
YO 973 039
509807/1012
-se- 243337?
tung 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 die monostabile Kippschaltung C12 ausgeht, schaltet das dadurch
erzeugte Signal eine monostabile Kippschaltung Cl3 ein, die dann ein Signal auf der Leitung 352 erzeugt. Dieses Signal wird
an das ODER-Glied 49 8 angelegt, dessen Ausgang den Inhalt des Datenregisters 446 (Fign. 2K und 2L) in den Assoziativspeicher
schreibt.
Wenn die monostabile Kippschaltung C13 ausgeht, wird das dadurch erzeugte Signal durch ein ODER-Glied 526 geleitet und schaltet
eine monostabile Kippschaltung C14 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 35 8. Mit dem Signal auf
der Leitung 356 wird eine monostabile Kippschaltung C15 eingeschaltet. Ein Signal auf der Leitung 358 läuft durch ein ODER-Glied
422 und schaltet eine monostabile Kippschaltung Al ein. Die monostabile Kippschaltung C15 dient nur Verzögerung und
wenn sie abschaltet, wird ein Signal erzeugt, welches durch das ODER-Glied 526 läuft und die monostabile Kippschaltung Cl4
einschaltet.
Bisher wurde die Arbeitsweise der Verzeichniseinheit und des LRU-Kastens 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 an dieser Verbindung im Primärspeicher vorhanden
ist. An dieser Verbindung befindet sich die die Seitenausnahme auslösende Seite jetzt im Primärspeicher.
YO 9 73 039
509807/1012
Es wurde bereits beschrieben, daß beim Ausschalten der monostabilen
Kippschaltung B2 ein Signal erzeugt wird, welches die
monostabile Kippschaltung Ml einschaltet zur Erzeugung eines
Signales auf der Leitung 364, welches an ein UND-Glied 528 angelegt wird. Die LRU-Zahl wird bezeichnet durch den aktiven Zustand einer der Leitungen 530,.532, 534, 536, 538, 540, 542 oder 544. Der aktive Zustand der Leitung 5 30 bezeichnet eine LRU-Zahl 1. Wenn die Leitung 5 30 aktiv ist, ist das UND-Glied 528 nicht
eingeschaltet, wodurch kein Ausgang auf der Leitung 392 erscheint. Wenn die Leitung 532 aktiv ist, bedeutet das eine LRU-Zahl von 2. Wenn das Register 154 (Fig. 2P) auch die Zahl 2 enthält, ist die Leitung 5 46 aktiv und das UND-Glied 548 wird zur Erzeugung eines Ausgangssignales eingeschaltet, welches das UND-Glied 528 an der Abgabe eines Ausgangssignales auf die Leitung 392 hindert. Wenn die Leitung 530 nicht aktiv ist und eine der beiden Leitungen
532 und 546 ebenfalls nicht aktiv ist, erzeugt das UND-Glied 528 ein Ausgangssignal auf der Leitung 392, welches zum Einschalten der monostabilen Kippschaltung M2 benutzt wird. -Mit dieser Anordnung tritt keine M-Signalfolge über das von der monostabilen Kippschaltung Ml erzeugte Signal hinaus auf, wenn auf der Leitung 39 2 kein Ausgabesignal liegt.
monostabile Kippschaltung Ml einschaltet zur Erzeugung eines
Signales auf der Leitung 364, welches an ein UND-Glied 528 angelegt wird. Die LRU-Zahl wird bezeichnet durch den aktiven Zustand einer der Leitungen 530,.532, 534, 536, 538, 540, 542 oder 544. Der aktive Zustand der Leitung 5 30 bezeichnet eine LRU-Zahl 1. Wenn die Leitung 5 30 aktiv ist, ist das UND-Glied 528 nicht
eingeschaltet, wodurch kein Ausgang auf der Leitung 392 erscheint. Wenn die Leitung 532 aktiv ist, bedeutet das eine LRU-Zahl von 2. Wenn das Register 154 (Fig. 2P) auch die Zahl 2 enthält, ist die Leitung 5 46 aktiv und das UND-Glied 548 wird zur Erzeugung eines Ausgangssignales eingeschaltet, welches das UND-Glied 528 an der Abgabe eines Ausgangssignales auf die Leitung 392 hindert. Wenn die Leitung 530 nicht aktiv ist und eine der beiden Leitungen
532 und 546 ebenfalls nicht aktiv ist, erzeugt das UND-Glied 528 ein Ausgangssignal auf der Leitung 392, welches zum Einschalten der monostabilen Kippschaltung M2 benutzt wird. -Mit dieser Anordnung tritt keine M-Signalfolge über das von der monostabilen Kippschaltung Ml erzeugte Signal hinaus auf, wenn auf der Leitung 39 2 kein Ausgabesignal liegt.
Das Signal auf der Leitung 366 wird an ein ODER-Glied 550 (Fig. 2Q) angelegt, um die Flipflops 16 8, 170, 172, 174, 176, 178,
180 und 182 auf "0" zu stellen. Wenn die monostabile Kippschaltung M2 ausgeht, schaltet das dadurch erzeugte Signal die monostabile Kippschaltung M3 ein zur Erzeugung eines Signales auf
der Leitung 36 8, welches an das Schaltglied 246 (Fig. 20) ange legt wird. Durch Einschalten des Schaltgliedes 246 wird jede
LRU-Zahl zwischen 2 und 8 an die Leitungen 186, 188, 190, 192, 19 4, 196 und 19 8 (Fig. 2R) angelegt. Mit dem Signal auf der Leitung 368 werden außerdem die Flipflops 200, 202, 204, 206, 208, 210 und 212 auf "0" gestellt (Fign. 2T und 2V). Die UND-Glieder 552, 554, 556, 558, 560 und 562 werden durch den aktiven Zustand der Leitungen 100, 102, 104, 106, 108 und 110 eingeschaltet. Wenn also z.B. die LRU-Zahl 4 ist, die den aktiven Zustand
180 und 182 auf "0" zu stellen. Wenn die monostabile Kippschaltung M2 ausgeht, schaltet das dadurch erzeugte Signal die monostabile Kippschaltung M3 ein zur Erzeugung eines Signales auf
der Leitung 36 8, welches an das Schaltglied 246 (Fig. 20) ange legt wird. Durch Einschalten des Schaltgliedes 246 wird jede
LRU-Zahl zwischen 2 und 8 an die Leitungen 186, 188, 190, 192, 19 4, 196 und 19 8 (Fig. 2R) angelegt. Mit dem Signal auf der Leitung 368 werden außerdem die Flipflops 200, 202, 204, 206, 208, 210 und 212 auf "0" gestellt (Fign. 2T und 2V). Die UND-Glieder 552, 554, 556, 558, 560 und 562 werden durch den aktiven Zustand der Leitungen 100, 102, 104, 106, 108 und 110 eingeschaltet. Wenn also z.B. die LRU-Zahl 4 ist, die den aktiven Zustand
YO 973 039
509807/1012
der Leitung 5 36 bezeichnet, so wird die Leitung 19O (Fig. 2R)
aktiv und die Leitungen 192, 19 4, 196 und 19 8 werden ebenfalls wegen der Reihenanordnung der UND-Glied 556, 558, 560 und 562
aktiv. Bei dieser Anordnung sind die Register 158, 16O, 16 2,
16 4 und 166 in die Anfangssortierung eingeschlossen, um die kleinste Zahl in diesem Registersatz herauszufinden. Wenn das Register
164 z.B. in diesem Satz die kleinste Zahl enthält, wirr! das Flipflop 180 auf "1" gesetzt.
Dadurch wird die Leitung 108 aktiv und das UND-Glied 560 wird abgeschaltet.
Dieser Vorgang bedeutet, daß die Register 164 und (Fig. 2U) jetzt aus dem Sortierprozeß herausgenommen sind und
die nächste Sortierung die Register 158, 160 und 162 betrifft. Wenn das Register 162 also die kleinste Zahl der Register 15 8,
160 und 162 enthält, dann wird das Flipflop 178 auf "1" gestellt und die Leitung 106 inaktiv gemacht. Dadurch wird das UND-Glied
558 abgeschaltet und die unteren drei Register 162, 16 4 und aus der Sortierung herausgenommen, so daß die Register 15 8 und
160 übrig bleiben. Wenn angenommen wird, daß das Register 160 die kleinste Zahl der Register 158 und 160 enthält, dann wird
das Flipflop 176 auf "1" gesetzt und die Leitung 104 abgeschaltet. Dadurch wiederum wird das UND-Glied 556 abgeschaltet und
es bleibt nur das Register 158 in der Sortierung. Wenn das Register 15 8 das einzige in der Sortierung übrig gebliebene Register
ist, muß es natürlich die kleinste Zahl enthalten, weil nur eine Zahl zu sortieren ist. Dem zufolge wird das Flipflop 174 auf
"1" gesetzt und die Leitung 102 wird inaktiv, wodurch auch das UND-Glied 554 abgeschaltet wird. An diesem Beispiel wurde gezeigt,
daß durch ein auf der Leitung 36 8 erscheinendes Signal die Flipflops 180, 178, 176 und 174 auf "1" gesetzt werden.
Kenn die monostabile Kippschaltung 113 ausgeht, wird dadurch ein
Signal erzeugt, welches die monostabile Kippschaltung 114 einschaltet
zur Erzeugung eines Signales auf der Leitung 370. Das Signal auf der Leitung 370 überträgt die Einereinstellung der
Flipflops 170, 172, 174, 176, 178, 18O und 182 auf die Flipflop
YO 973 039
509807/1012
Gruppe 2OO , 2O2, 2Ο4, 2Ο6, 208, 21Ο und 212. Gemäß nachfolgender
Erklärung bildet die Flipflop-Gruppe 20O7 202 usw. bis 212
die Maske für die selektive Abwärtsverschiebung der in den Figuren
2P, 2S und 2U gezeigten Register.
Wenn die monostabile Kippschaltung M4 ausgeht, schaltet das daraus
resultierende Signal eine monostabile Kippschaltung M5 ein. Dieser liefert im eingeschalteten Zustand ein Signal auf die Leitung
372, mit dem die Flipflops 232, 234, 236, 238, 240 und 242 (Fig. 2R) auf "0" zurückgestellt werden. Das Signal auf der Leitung
372 wird außerdem an das ODER-Glied 550 angelegt, dessen resultierende Ausgabe die Flipflops 168, 170, 172, 174, 176, 178,
180 und 182 (Figuren 2T und 2V) auf "0" zurückstellt. Das Signal auf der Leitung 372 leitet auch das binäre Äquivalent der ganzen
Zahl 2 in das Register 152 (Fig. 2P).
Der MIN-Kasten ist jetzt so eingestellt, .daß er die kleinste fehlende
Zahl in den Registern über der Zahl herausfindet, die der LRU-Zahl entspricht. Wenn an diesem Übergang z.B. die LRU-Zahl
4 ist, würde das bedeuten, daß die Register 158, 160, 16 2, 16 4 und 16 6 (Fig. 2S und 2U) in die Sortierungen gemäß obiger Beschreibungen
eingeschlossen wären.
In die Operation, die die kleinste Zahl in diesem Registersatz findet, sind auch die Register 156 und 154 eingeschlossen. Da
die kleinste Zahl, die berücksichtigt werden kann, die Zahl 2 ist, wird dieser Wert in das Register 152 geladen.
An diesem Punkt muß festgestellt werden, ob eines der Register 15 4 und 156 ebenfalls die Zahl 2 enthält. Wenn diese Zahl nicht
in den Registern 154 und 156 steht, dann ist 2 die kleinste fehlende Zahl. Wenn angenommen wird, daß das Register 154 die
Zahl 2 enthielt und das Register 156 die Zahl 3, dann liegt natürlich in den Registern 15 2 und 154 eine Doppelbedingung vor.
In diesem Fall muß der Inhalt des Reg isters 152 auf die Zahl 3 erhöht und dann die Prüfung noch einmal durchgeführt werden.
Da jedoch bekannt ist, daß zu diesem Zeitpunkt das Register 156 YO 9 73 0 39
509807/1012
die Zahl 3 enthält, liegt auch hier wieder eine Doppelbedingung vor. Daher wird der Inhalt des Registers 152 auf 4 erhöht und anschließend
hat die Prüfung Erfolg, weil die Zahl 4 die kleinste fehlende Zahl der aus den Zahlen 2 und 3 bestehenden Gruppe ist.
Das heißt natürlich, daß die Zahl 1 aus dieser Bestimmung ausgeschlossen ist.
Wenn die monostabile Kippschaltung M5 ausgeht, wird durch das dadurch
erzeugte Signal die monostabile Kippschaltung H6 eingeschaltet, die ein Signal auf die Leitung 374 gibt. Dieses Signal
wird an ein ODER-Glied 564 (Fig. 20) angelegt, dessen Ausgang das Schaltglied 244 einschaltet. In dem oben beschriebenen Beispiel
ist die Leitung 5 36 aktiv und dadurch gibt das ODER-Glied 572 ein Ausgang ssignal ab, welches die Leitungen 218, 216 und
214 in den aktiven Zustand versetzt. Das Signal auf der Leitung 214 erscheint auf der Leitung 184, das Signal auf der Leitung
216 erscheint auf der Leitung 186 und das Signal auf der Leitung 218 erscheint auf der Leitung 188.
Die Register 156, 154 und 152 sind demzufolge in die erste Sortierung
für die kleinste fehlende Zahl einbezogen. Das Flipflop 168 (Fig. 2T) wird auf "1" gesetzt. Wenn eines der Register 154
oder 156 ebenfalls die Zahl 2 enthält, dann wird das eine oder das andere Flipflop 170 oder 172 (Fig. 2T) ebenfalls auf "1" gesetzt.
Wenn die monostabile Kippschaltung M6 ausgeht, wird dadurch die
monostabile Kippschaltung M7 eingeschaltet und erzeugt ein Signal auf der Leitung 376, das an das Schaltglied 566 angelegt wird
(Fig. 2Q). Wenn Doppelzahlen vorhanden sind, erscheint ein Signal auf der Leitung 388. Wenn jedoch keine doppelten Zahlen vorhanden
sind, arscheint ein Signal auf der Leitung 390. Mit einem Signal auf der Leitung 388 wird die monostabile Kippschaltung M8 und mit
einem Signal auf der Leitung 390 die monostabile Kippschaltung MIO eingeschaltet, nimmt man an, daß laufend Doppelzahlen vorhanden
waren, so wird die monostabile Kippschaltung M8 eingeschaltet und es erscheint ein Signal auf der Leitung 378, welches an einer
YO 9 73 039
509807/1012
Reihe von UND-Gliedern (Fig. 2Q, 2T und 2V) angelegt wird, die die Einer-Einstellung des Flipflop in der Flipflop-Gruppe 170,
172, 174, 176, 178, 180 und 182 (Fign. 2T und 2V), die wegen der
Doppelzahl auf "1" gesetzt wurden, an die Flipflop-Gruppe 2 32, 234, 236, 238, 240 und 242 (Fig. 2R) überträgt. Durch diese Operation
wird die Doppelzahl, die z.B. in einem der Register 154 oder 156 gestanden haben kann, aus der nächsten Sortierung herausgenommen,
weil entweder die Leitung 186 oder die Leitung 188 abgeschaltet wurde, wenn z.B. eines der Flipflops 2 32 oder 2 34
auf "1" gesetzt war.
Wenn die monostabile Kippschaltung 118 ausgeht, wird eine monostabile
Kippschaltung M9 eingeschaltet und erzeugt ein Signal auf der Leitung 380, das an das ODER-Glied 550 (Fig. 2Q) angelegt
wird. Die resultierende Ausgabe des ODER-Gliedes 5 50 stellt die Flipflops 168, 170, 172, 174, 176, 180 und 182 auf "0" zurück.
Mit dem Signal auf der Leitung 380 kann man auch das Register 152 (Fig. 2P) erhöhen.
Wenn die monostabile Kippschaltung M9 ausgeht, schaltet das dadurch
erzeugte Signal die monostabile Kippschaltung M6. Mit diesem Signal wird die Sortierung der kleinsten fehlenden Zahl wiederholt
und wenn die Prüfung auf Doppelzahlen anzeigt, daß keine Zahl doppelt vorhanden ist, dann wird die monpstabile Kippschaltung
MIO eingeschaltet und ein Signal auf der Leitung 382 erzeugt. Mit dem Signal auf der Leitung 382 wird das Schaltglied 22 8 und
das Schaltglied 244 (Fig. 20) eingeschaltet. Im oben beschriebenen Beispiel, in dem die LRU-Zahl 4 ist, werden durch das Einschalten
der Schaltglieder 228 und 244 die aktiven Zustände auf den Leitungen 216 und 218 an die Leitungen 112 und 114 (Fig. 20)
übertragen. Die aktiven Zustände der Leitungen 112 und 114 setzen die Flipflops 200 und 202 auf "1". Dadurch ist die Einstellung
der Maskenflipflops 200, 202, 204, 206, 208, 210 und 212 (Fign. 2T und 2V) beendet. Die Maskenflipflops steuern die selektive
Abwärtsverschiebung der Inhaltsregister (Fign. 2P, 2S und 20).
Außerdem verlaufen die Leitungen 124 und 126 in Fig. 2T zum Register 15 4. Die Leitungen 12 8 und 130 führen zum Register 156 usw.
YO 973 039
509807/1012
243337?
Das Signal auf der Leitung 382 wird außerdem an ein Schaltglied 2 30 (Fig. 2Q) angelegt, um den Inhalt eines der Zähler (Fig. 2Q)
zu erhöhen, das heißt, desjenigen Zählers, der der kleinsten fehlenden Zahl entspricht.
Jetzt müssen noch die beiden Schiebeimpulse angelegt werden. Der erste Schiebeimpuls wird durch das Signal geliefert, das auf der
Leitung 384 erzeugt wird, wenn die monostabile. Kippschaltung IUl eingeschaltet wird. Danach wird auf der Leitung 386 der zweite
Schiebeimpuls geliefert und erzeugt, wenn die monostabile Kippschaltung
M12 einschaltet.
Die Figuren 3A bis 3D zusammengenommen gem. Fig. 3 zeigen geeignete
Ausführungsbeispiele der Stufen 406, 408, 410, 412, 414 und 416 und ihre Verbindung.
Anschließend wird ein typisches Rechenbeispiel gegeben, das die Arbeitsweise des MIN-Kastens zeigt. Für die Beschreibung dieser
Arbeitsweise wird auf die Figuren 4A bis 4U Bezug genommen, zusammengelegt gem. Fig. 4 und die Figuren 5A bis 51, zusammengelegt
gem. Fign. 5, die Figuren 6A bis 61, zusammengelegt gem.
Fig. 6, die Figuren 7A bis IC, zusammengelegt gem. Fig. 7, Fign.
8a bis 8ü, zusammengelegt gem. Fig. 8 und die Figur 9. Die Figuren 4 und 8 sind identisch. Die Figuren 5 und 6 sind identisch
mit den Figuren 4A bis 41 und 8A bis 81. Die Figur 7 ist identisch
mit den Figuren 4A bis 4C, 5A bis 5C, 6A bis 6C und 8A bis 8C. Die Figuren 4, 5, 6 und 7 zeigen die Schaltwegen im MIN-Kasten
zur Durchführung des in Fig. 9 gegebenen Rechenbeispieles.
In dem Beispiel in Fig. 9 wird angenommen, daß das Register 154 die Zahl 3, das Register 156 die Zahl 2, das Register 158 die
Zahl 4, das Register 160 die Zahl 6, das Register 162 die Zahl 5, das Register 16 4 die Zahl 7 und das Register 16 6 die Zahl 10 enthält.
Außerdem wird angenommen, daß die LRU-Eingabe 5 ist und dadurch anzeigt, daß das Register 160 adressiert wird. Die erste
Sortierung betrifft daher das Register 16O und die unter ihm ste-
YO 973 039
509807/1012
henden Register, d.h., diejenigen Register, die höhere Bezeichnungszahlen
haben, also die Register 162, 164 und 166. Die kleinste Zahl in dieser Registergruppe ist die 5 und sie steht in Register
162. Wenn das System diese Lage feststellt, werden die Register 162, 16 4 und 166 aus der Sortierung herausgenommen und es
bleibt nur das Register 160 übrig. Die Zahl im Register 160 ist natürlich die kleinste Zahl in diesem nur das eine Register 160
umfassenden Satz.
Jetzt muß die kleinste nicht in den drei Registern 15 8, 156 und 15 4 direkt oberhalb des Registers 160 enthaltende fehlende Zahl
gefunden werden. Diese kleinste fehlende Zahl findet man durch wiederholte Versuche, indem man mit der Zahl 2 beginnt, die in
das Register 152 geladen wird (die Zahl ist bekanntlich kein Kanditat
für die kleinste fehlende Zahl). Mit dem Laden der Zahl 2 in das Register 152 sind die Register 15 8, 156, 154 und 152 in
die erste Sortierung eingeschlossen, die anzeigt, daß die Register 152 und 156 beide die Zahl 2 enthalten. Daher wird das Register
156 jetzt aus der benutzten Registergruppe herausgenommen und der Inhalt des Registers 152 um 1 auf 3 erhöht. Danach folgt
die zweite Sortierung und ihr Ergebnis zeigt an, daß Doppelzahlen vorhanden sind, da die Register 152 und 154 beide die Zahl
3 enthalten.
Als nächstes wird daher das Register 154 aus der Sortierung herausgenommen und der Inhalt des Registers 152 wieder um 1 auf
4 erhöht. Es folgt jetzt die dritte Sortierung für die kleinste fehlende Zahl. In diesem Fall enthalten die Register 152 und
dieselbe Zahl, nämlich 4. Demzufolge wird das Register 158 aus der Sortierung herausgenommen und der Inhalt des Registers 152
auf 5 erhöht. In der folgenden vierten Sortierung mit der 5 im Register 152 sind keine Duplikate dieser Zahl in den Registern
154, 156 und 15 8 mehr vorhanden.
In Fig. 4 sind nur drei Spalten angegeben, um die Arbeitsweise zu zeigen und zu erklären. In einem wirklichen System sind natürlich
mehr als drei Spalten vorhanden. Das oben in Verbin-YO 973 039
509807/1012
dung mit Fig. 9 gezeigte Beispiel verwendet auch nur 4 Bits und nur das untere Register 166 enthielt in der hohen Wertposition
eine "1". Das beschriebene Beispiel kann also mit nur drei Spalten gezeigt werden und wird nur im Zusammenhang mit den drei
wertniederen Bits betrachtet.
Wie bereits erklärt wurde, sind von der ersten Sortierung die Register 160, 16 2, 16 4 und 16 6 betroffen, wenn die LRU-Zahl die
5 ist. Die Sortierläufe sind in Fig. 4 von links kommend durch die gestrichelten Linien 800 dargestellt (Fig. 4, 5 6 und 7).
Keine Sortierfolge läuft in das Register 166, weil dieses durch die "1" in der werthohen Stelle dieser Zahl gesperrt war. Die
Sortierfolge, die auf der rechten Seite herauskommt, ist die gestrichelte Linie, die zum Register 162 verläuft und hierbei
handelt es sich um diejenige Sortierfolge, die das Flipflop 178 einschaltet (Fig. 2V). Die erste Sortierung schaltet das Flipflop
178. Die Leitung 106 wird abgeschaltet und dadurch die Leitungen 19 4, 196 und 19 8 aus der Sortierung herausgenommen.
Die zweite Sortierung befaßt sich nur mit dem Register 160 und
dort ist der Sortierlauf am Anfang durch eine gestrichelte Linie 800 und dann durch eine Strichpunktlinie 8O2 dargestellt, die
nach rechts ausläuft und das Flipflop 176 einschaltet (Fig. 2V). Die Leitung 104 wird abgeschaltet und dadurch wiederum die Leitungen
192, 19 4, 19 6 und 19 8 aus der Sortierung genommen. Der Impuls M4 schaltet die Flipflops 206 und 208 ein.
Die erste Sortierung nach der kleinsten fehlenden Zahl (S, M, N) erfolgt, indem man das Register 152 auf die binäre Zahl 0010
setzt, d.h., den die Dezimalzahl 2 darstellenden Binärcode. Die von dieser ersten Sortierung nach der kleinsten fehlenden Zahl
betroffenen Register sind die Register 158, 156, 154 und 152. Die Flipflops 168 und 172 werden eingeschaltet. Nach Darstellung
in Fig. 4 überquert eine gestrichelte Linie 800 das gesamte Register 156 und das gesamte Register 152 und zeigt dadurch an,
daß die Zahl im Register 156 ein Duplikat der Zahl im Register
TO973039 509807/1012
152 ist, wodurch man die Zahl im Register 152 erhöhen und zur zweiten Sortierung nach der kleinsten fehlenden Zahl übergehen
muß.
Die Erhöhung des Inhaltes des Registers 152 und die zweite Sortierung
nach der SMN sind in Fig. 5 gezeigt. Die Flipflops 16 8 und 170 werden eingeschaltet. Aus Fig. 5 geht hervor, daß der
durch die gestrichelten horizontalen Linien 800 dargestellte Sortierlauf durch beide Register 154 und 152 geht und anzeigt,
daß die Zahl im Register 154 ein Duplikat der Zahl im Register 152 ist, wodurch die Zahl im Register 152 wieder erhöht werden
muß auf 4. Dann wird die Arbeit mit der doppelten Sortierung nach der kleinsten fehlenden Zahl fortgesetzt.
Die Erhöhung der Zahl im Register 152 auf 4 und die Sortierung nach der dritten kleinsten fehlenden Zahl ist in Fig. 6 gezeigt.
Die Flipflops 16 8 und 174 sind eingeschaltet. Die durch die horizontalen gestrichelten Linien 800 in Fig. 6 gezeigte Sortierfolge
kommt aus den Registern 158 und 152 und zeigt dadurch an, daß die Zahl im Register 158 das Duplikat der Zahlenregister
152 ist. Demnach muß die Zahl im Register 152 wieder erhöht werden, und zwar auf 5, und es folgt die Viertelsortierung nach
der kleinsten fehlenden Zahl. Diese Erhöhung in der vierten Sortierung ist in Fig. 7 gezeigt. Das Flipflop 16 8 ist eingeschaltet.
Da in der Sortierfolge in Fig. 7 nur ein Register übrig ist, muß die gestrichelte Linie 800 rechts am Register 152 herauskommen.
Das stimmt natürlich nicht, wenn größere Zahlen in den anderen Registern stehen. Es gilt jedoch in diesem Falle, da im gewählten
Beispiel alle anderen Register aus der Sortierung herausgenommen wurden, bevor diese letzte oder vierte Sortierung nach
der kleinsten fehlenden Zahl erfolgte.
Bevor mit der ausgewählten Abwärtsverschiebung des Inhaltes der Register nach der Darstellung in den Figuren 2P, 2J und 2U wei-
YO 9 73 039
509807/1012
tergearbeitet wird, sei daran erinnert, daß das Schaltglied 22
durch den Impuls auf der Leitung 382 eingeschaltet wird, um die Flipflops 200, 202 und 204 auf "1" zu setzen. Für die gewählte
Schiebeoperation sind also alle Ilaskenflipflops mit Ausnahme
dar beiden unteren auf "1" gesetzt und die beiden unteren Flipflops bleiben auf "0" stehen.
In Fig. 8 sind die Zustände dieser Ilaskenflipflops wiedergegegeben
durch die Bezeichnungszahlen rechts von den. Figuren 8C,
8F, 81, 8L, 8Q, 8R und 8ü. Diese Bezeichnungszahlen, die oben
beginnen, sind 126, 124, 130, 128 usw., sind von den Flipflops 200, 202, 204, 206, 208, 210 und 212 nach Darstellung in den
Figuren 2T und 2V. Der aktive Zustand dieser Leitungen wird
durch die gestrichelte Linie in Fig. 8 dargestellt. In Fig. 8 stehen alle Maskenflipflops von oben hinab einschließlich zum
Register 162 auf "1". Die Maskenflipflops für die Register 164
und 166 stehen auf "0". Das unterste Register 166 jedoch wird für die Schiebeoperation nicht gebraucht und ist in Fig. 8 nicht
dargestellt.
Der erste durch die gestrichelte Linie dargestellte Schiebeimpuls wird an die Leitungen 384 angelegt. Das Register 152 enthält nur
ein Flipflop-Register-Element. Die anderen Register 154, 156, 158, 160, 162, 164 und 166 enthalten zwei Flipflops. Nach Darstellung
in Fig. 8 ist eines dieser beiden Flipflops oben am Registerelement ein Zwischenspeicherflipflop und das in der unteren Hälfte
liegende Flipflop ist das Speicherflipflop für das Informationsbit. Der erste Schiebeimpuls soll Information vom Speicherflipflop
in das Zwischenspeicherflipflop direkt darunterschiebcn oder
es in die Umgehungsbahn leiten, um Register zur überspringen. Die einzige Umgehung, die im beschriebenen Beispiel erfolgt, ist
die Umgierung in Verbindung mit dem Register 164.
Information aus den Bits im Register 16 2 gelangt über die gestrichelten
Linien nach unten und dann über die Umgierungslinie η
durch das Schaltglied und abwärts durch das Schaltglied unter
YO 9 73 039
B09807/1012
der Oberseite des Registerelementes des Registers 166. Im Beispiel
gelangt die Information vom Register 162 jedoch nicht in das Register 166, weil die Leitung 150 nicht aktiv ist. Die Information
im Register 16 2 verschwindet. Die Information in den Registern 16 4 und 166 verändert sich nicht und die Information
in den Registern über dem Register 162 bewegt sich insgesamt um jeweils eine Position nach unten, d.h., der Inhalt des Registers
160 gelangt in das Register 162, der Inhalt des Registers 158 gelangt in das Register 80, der Inhalt des Registers 156 gelangt
in das Register 15 8, der Inhalt des Register 154 gelangt in das Register 156 und der Inhalt des Registers 152 gelangt in das
Register 154.
Die zweite Verschiebung aus den Zwischenflipflops in die Speicherflipflops
ist in die Strichpunktlinie dargestellt, und zu diesem Zeitpunkt ist die Leitung 386 erregt.
Die folgende Tabelle zeigt die Beziehung der Operationen unter
Steuerung des A-Taktes.
YO 9 73 039
509807/1012
Monostabile
Kipps chaltung
Kipps chaltung
Einschaltbedingungen e inge s ehaltet
ausgeführte
Funktion(en)
Funktion(en)
ausgeschaltet ausgeführte Funktion(en)
Speieherζugriffsanforderung
durch ZE (Signal auf Leitung 2 86) . Nullstellung des Flipflop 516.
Einschalten der monostabilen Kippschaltung Al
Einschalten der monostabilen Kippschaltung A2 Rückstellung Einschalten
des LRU-Feldes der monostader
Argumenten bilen Kippmaske auf "0". schaltung A2, Schalten der
Blockzahl der Argumentenmaske auf lauter Einsen. Leiten der
Blockzahl aus Register 418 im Blockzahlenfeld des Argumentenregisters.
Schalten der überein-Stimmungsanzeiauf
"1". Rückstellen des IOL-Flipflop auf "O1V
Erzeugt Assoziie- Einschalrungssignal
für ten der Assoziierung auf monostader Blockzahl bilen
Kippschaltung A3.
Abfrage der Übereinstimmungs-Anzeigeflipflops
auf Einschaltung oder Nichtein-
Eins chaltung der monostabilen Kippschal-
Ausschalten der monostabilen Kippschaltung A3. schaltung des IOk-tung A4
Flipflop auf Irl"
Prüfung der Schaltstellung des IOL-Flip-Flop
YO 973 039
509807/1012
Die folgende Tabelle zeigt die Operationsbeziehungen unter Steuerung
des B-Taktes.
Monostabile
Kippschaltung
Kippschaltung
Einschaltbedingungen eingeschaltet ausgeführte Funktion(en)
ausgeschaltet ausgeführte Funktion(en)
Nullstellung des EOL-Flipflop
Lesen des über- Einschalten der einstimmungswor- monostabilen
tes im Assoziativ- Kippschaltung speicher in das B2. Speicherdatenre-"gister
446. Rückstellung des LRU-Halteregisters auf "0".
Ausschalten der monostabilen Kippschaltung Bl
Ausschalten der monostabilen
Kippschaltung B2
YO 973 039
Leiten des realen Einschalten Blockes aus dem der monostabi-Speicherdatenregi-
len Kippschalster in den linken tung B3. EinTeil des Speicher- schalten der
adreßregisters 450 monostabilen des Primärspei- Kippschaltung chers. Leiten der Ml.
"Adresse im Block" aus Register 418 im rechten Teil des Speicheradreßregisters 450. Rückstellung
des LRU-feldes der Argumentenmaske auf Nullen. Leiten der LRU-Zahl
auf Speicherdatenregister in LRU-HaI-teregister.
Setzen der überein- Einschalten stimmungsanzeigeflip-der monoflops
auf "1". Set- stabilen zen des linken Teiles ippschaldes LRU-Feldes der tung B4
Argumentenmaske auf dieselbe Anzahl von Einsen wie die LRU-Zahl im Assoziativspeicher
HDR (Speicherdatenregister) enthält. Rückstellung des Blockzah-
509807/1012
Monostabile Einschalt-Kippschaltung
bedingungen eingeschaltet ausgeführte Funktion(en)
aus ge s ch a 1 te t ausgeführte Funktion(en)
Ausschalten der monostabilen
Kippschaltung B3 lenfeldes der Argumentenmaske auf lauter
Nullen. Rückstellung des LRU-Fe1des des
Argumentenfeldes auf lauter Nullen.
Lieferung des Einschalten der Assoziationsim- monostabilen Kipppulses
zur Rück-schaltung B4. stellung der übereinstimmungsanzeiger
für alle Worte im Assoziativspeicher, deren LRU-Zahlen kleiner gleich
der LRU-Zahl im Datenregister 4 46 sind.
Ausschalten der monostabilen Kippschaltung B4.
Ausschalten der monostabilen Kippschaltung B5. Lieferung des ersten
Schiebeimpulses .
Lieferung des zweiten Schiebeimpulses
Einschalten der monostabilen Kippschaltung B6
Einschalten der monostabilen Kippschaltung
B7.
Ausschalten der monostabilen Kippschaltung
B6. Setzen der übereinstimmungs anzeige-Flipflops
auf "1". Rückstellung des LRU-feldes der Argumentenmaske
auf lauter Nullen. Setzen des Blockzahlenfeldes der Argumentenmaske auf lauter Einsen.
Einschalten der monostabilen Kippschaltung B fi,
YO 973 039
509807/1012
Monostabile Einschalt-Kippsehaltung
bedingungen
eingeschaltet
ausgeführte
Funktion(en)
ausgeführte
Funktion(en)
ausgeschaltet ausgeführte Funktion(en)
Ausschalten der monostabilen Kippschaltungen
B7
Ausschalten der monostabilen Kippschaltung B8 Lieferung des As- Einschalten der
soziationsimpul- monostabilen Kippses schaltung B9
Setzen des LRU-feldes des Assoziativspeicherdaten
registers auf 10000000. Prüfen
der Stellung des Änderungsflipflop.
BIO
BH
Einerstellung des Änderungsflip flop
Setzen des A-Bit des Assoziativspeicherdatenre- gisters auf "1".
Nullstellung Schreiben des Indes Änderungs-haltes des Assoziflipflop
ativspeicherdaten-
registers in den Assoziativspeicher zurück.
Die folgende Tabelle zeigt die Beziehungen der Operationen unter Steuerung des C-Taktes.
Monostabile
Kippschaltung
Kippschaltung
Einschaltbedingungen
Einerstellung des IOL-Flipflop
eingeschaltet
ausgeführte
Funktion(en)
ausgeführte
Funktion(en)
Setzen des LRU-Feldes der Argumentenmaske auf
lauter Einsen.
Die Rückstellung des Blockzahlenfeldes der Argumentenmaske auf
lauter Hüllen.
lauter Einsen.
Die Rückstellung des Blockzahlenfeldes der Argumentenmaske auf
lauter Hüllen.
ausgeschaltet ausgeführte Funktion(en)
Einschalten
der monostabilen
Kippschaltung C2.
YO 973 039
509807/1012
Monostabile Einschalt-Kippsehaltung
bedingungen
eingeschaltet axis ge führ te Funktion(en)
Setzen der Übereinstimmungsanzeige flipflops auf "1".
Ausschalten Lieferung des der monostabi- Assoziationslen
Kippschal- impulses tung Cl
ausgeschaltet ausgeführte Funktion(en)
Einschalten der monostabilen Kippschaltung C3
Ausschalten der monostabilen Kippschaltung C2. Lieferung des Einschalten der moersten
Schiebe- nostabilen Kippimpulses schaltung C4.
Ausschalten der monostabilen Kippschaltung
C3, Lieferung des zweiten Schiebeimpulses
Einschalten der monostabilen Kippschaltung C5.
Ausschalten der monostabilen Kippschaltung C4,
Ausschalten der monostabilen Kippschaltung
C5 Lesen des über- Einschalten der mo· einstimmenden nostabilen Kipp-Wortes
aus dem schaltung C6. Assoziativspeicher in das Assoziativspei cher da tenre gi ster
446
Setzen des LRU-abschnittes
des Assoziativspeicherdatenregisters 446 auf 10000000. Prüfung der Stellung
des A-Bit im Assoziativspeicherdatenregister
446.
YO 9 73 039
609807/1012
monostabile Einsehalt-Kippsehaltung
bedingungen
eingeschaltet ausgeführte Funktion(en)
ausgesehaltet
ausgeführte Funktion(en)
Leiten der Block- Einschalten der ζ aiii aus dem Re- monostabilen Kipp-
Das Α-Bit im
Assoziativspeicherdatengister 418 in das schaltung C8.
Assoziativspeicherdatengister 418 in das schaltung C8.
register 446 steht auf "O1 Aus taus chadreßregister.
Leiten des realen Blockfeldes des Assoziativspeicherdaten
register s 446 in das Primär adreßregister. Rückstellung des
Α-Bit im Assoziativspeicherdaten- register 446 auf 11O". Anlegen des
Ersatzeinganges an die Kanalsteuerungen. Setzen des Ersatzflipflop
514 auf "1".
Ausschalten der monostabilen Kippschaltung C7
Schreiben des In- Einschalten der haltes des Assozi- monostabilen ativspeicherda- Kippschaltung
tenregisters 4 46 C9. in den Assoziativspeicher
Ausschalten der monostabilen Kippschaltung C8.
Ausschalten der mo- Prüfung der nostabilen Kipp- Stellung des schaltung ClO. Austauschflipflop
ClO
Austauschflipflop 514 steht
auf "1".
Nur Verzögerung
Einschalten der monos tab ilen
Kippschaltung C9.
CIl
Das Α-Bit im Assoziativspeicherdatenregister
446 steht auf "1". Leiten des Block- Einschalten zahlenfeldes des der monostabi-Assoziativspeicher-
len Kippschaldaten register s 446 tung C12.
in das Schreibadreßregister.
YO 973 039
509807/1012
Monostabile Einschalt-Kippschaltung bedingungen
einges ehaltet ausgeführte
Funktion(en)
aus ges ehaltet ausgeführte
Funktion(en)
Ausschalten der monostabilen Kippschaltung CIl. Leiten der Blockzahl
vom ZE-Register 418 in das Austauschadreßregister.
Leiten des realen Blockfeldes des Assoziativen Speicherdatenregisters in das Primäradreßregister.
Leiten der Blockzahl vom Register 418 in das As s ozi ati vspeicherdatenre-
gister 4 46. Setzen des Α-Bit des Assoziativspeicherdatenregis
ters 4 46 auf "0". Anlegen der
Eingabe "Zurückschreiben und Austauschen" an die Kanalsteuerung. Setzen des Rückschreibe-
und Austausch-Flipflop 516 auf
Einschalten der monostabilen
Kippschaltung C13.
Ausschalten der monostabilen
Kipps chaltung C12.
Schreiben des Inhaltes des Assoziativspeicherdaten- registers 446 in
den Assoziativspeicher.
Einschalten der monostabilen Kippschaltung C14.
Ausschalten der monostabilen Kipps chaltung C13. Ausschalten der monostabilen
Kipps chaltung C15.
Prüfen der Erstellung des Rückschreibe- und Austausch-Flipflop 516.
YO 973 039
509807/1012
Monostabile Einschalt-Kippschaltung
bedingungen eingeschaltet
ausgeführte
Funktion (en)
ausgeführte
Funktion (en)
ausgeschaltet ausgeführte Funktion(en)
Einerstellung des Rückschreibe- und Austauschflipflop 516.
Nur Verzögerung
Einschalten der monostabilen Kippschaltung C14.
Die folgende Tabelle zeigt die Beziehung der Operationen und der Steuerung des M-Taktes.
Monostabile
Kippschaltung
Kippschaltung
Einschaltbedingungen einges ehaltet
ausgeführte
Funktion(en)
ausgeführte
Funktion(en)
ausgeschaltet ausgeführte Funktion(en)
Ausschalten der V7enn die LRU-Zahl
monostabilen
Kippschaltung
B2.
1 oder 2 ist und
der Inhalt des Registers 154, ist
2, ist damit die
M-Taktfolge beendet.
der Inhalt des Registers 154, ist
2, ist damit die
M-Taktfolge beendet.
Aktive Leitung 39 2.
Ausschalten der monostäbilen Kippschaltung M2, Rückstellung der
Flipflops 16 8,
Flipflops 16 8,
Einschalten der monosta-
170,172, 174, 176, bilen Kipp-178, 180, 182 auf schaltung M3
"0". .
Anlegen der LRU-Zahl im Bereich
von 2 bis 8 an
eine der ausgewählten Leitungen
186, 188, 190,
192,194, 196 und
19 8 (Einschalten
des Schaltgliedes
246). Rückstellung der Flipflops 200,
202, 204, 206, 208, 210 und 212 auf "0".
von 2 bis 8 an
eine der ausgewählten Leitungen
186, 188, 190,
192,194, 196 und
19 8 (Einschalten
des Schaltgliedes
246). Rückstellung der Flipflops 200,
202, 204, 206, 208, 210 und 212 auf "0".
Einschalten der monostabilen Kippschaltung M4.
YO 973 039
509807/1012
Monostabile Einsehalt-Kippschaltung
bedingen
eingeschaltet ausgeführte
Funktion(en)
Funktion(en)
ausgeschaltet ausgeführte Funktion (en)
Ausschalten der monostabilen Kippschaltung M3.
Ausschalten der monostabilen Kippschaltung M4.
übertragung der Einstellung der Flipflops 170,
172, 174, 176, 178, 180 und 182 auf die Flipflops 200, 202, 204, 206,
208, 210 und 212.
Rückstellung der Flipflops 2 32, 234, 236, 238, 240 und 242 auf "0". Rückstellung
Flipflops168, 170, 172, 174, 176, 178,
180 und 182 auf "0". Setzen des Inhaltes des Registers 152 auf 00 010.
Einschalten der
monostabilen
Kippschaltung
M5.
Einschalten der monostabilen Kippschaltung 116.
Ausschalten der monostabilen Kippschaltungen M5 und M9.
Anlegen der LRU-Zahl an die gewählte Leitung
214, 216, 218, 220, 222, 224 und 226. (Einschalten des Schaltgliedes 244).
Einschalten der monostabilen Kippschaltung M7.
Ausschalten der monostabilen Kippschaltung
M6.
Bestimmung vor Doppelzahlen. .
Die Feststellung, daß Doppelz ah len vorhanden sind.
übertragung der Ein- Einschalstellung der Flipflops ten der 170, 172, 174, 176, 178, monostabi-180
und 182 auf die len Kipp-Flipflops 232, 234, schaltung 236, 238, 240 und 242. M9.
YO 973 039
509807/1012
Monostabile Einsehalt- eingeschaltet ausgeschaltet
Kippschaltung bedingungen ausgeführte ausgeführte
Funktion(en) Funktion(en)
M9 Ausschalten Rückstellung der Einschalten der
der monosta- Flipflops 16 8, monostabilen
bilen Kipp- 170, 172, 174, Kippschaltung
schaltung 176, 178, 180 und
M8. 182 auf "0". Erhö
hung des Inhaltes des Registers 152.
MlO Die Feststel- Einschalten der Einschalten der
lung, daß kei- Schaltglieder 228, monostabilen ne DoppeIzah- 2 30 und 2 44. Kippschaltung
len vorhanden MIl.
sind.
MH Ausschalten Lieferung des er- Einschalten der
der monostabi- sten Schiebeimpul- monostabilen len Kippschal- ses. Kippschaltung
tung MIO. Ml2.
Ml2 Ausschalten
der monosta- Lieferung des zweiten Schiebeimpulses,
bilen Kippschaltung MIl.
Anschließend v/erden die Programme beschrieben, die bei einer Seitenausnahme aufgerufen werden, d.h., wenn die angezogene Seite
nicht im Primärspeicher steht. Die in diesen Programmen verwendeten Symbole sind folgende:
T(I,J) ist eine N 2-Matrix, worin N die Anzahl von Seiten im
virtuellen Speicher ist. Die erste Spalte dieser Tabelle (J=I) ist die LRU-Zahl und die zweite Spalte (J=2) der OPT-Wert, d.h.
die P-Zahl. τ ist nach virtuellen Seiten geordnet.
YO 973 039
509807/1012
CTAB(I) ist eine Tabelle von N Zählern, die den Zahlenwert für das Auftreten eines jedes Ausgabewertes I (als MMC) enthält.
MBOX(I) ist eine Tabelle von 2M Einträgen: 1,...M ist der P-Stapel
und 1,...H sind die Zähler. Diese Eintragungen empfangen
die Kopien des Inhaltes der entsprechenden Register vom Gerät bei Ausführung einer Sonderinstruktion EXEC(2, LOC), gemäß nachfolgender
Erklärung.
K ist die virtuelle Adresse derjenigen Seite, die die Ausnahme auslöst und wird vor dem Aufruf von PGEX geladen.
L ist der temporäre LRU-Index.
BUFF ist die temporäre Lage von MMC.
SMN ist die kleinste fehlende Zahl während einer Suche.
REPL enthält die virtuelle Adresse der Seite, die ausgetauscht wird. (In diesem Zusammenhang wird EXEC (3, LOC) aufgerufen gem.
späterer Erklärung.
LMAX ist die ZaIi 1 von bis zu diesem Zeitpunkt angezogenen verschiedenen
Seiten.
Alle obigen Veränderlichen sind selbstinitialisiert mit Ausnahme von LIlAX, welches am Anfang Null ist.
M ist die Anzahl von Seitenrahmen im Realspeicher (Maschinengröße) .
N ist die Anzahl von Seiten im virtuellen Speicher. YO 973 039
503807/1012
NEVJR Prozeß neuer Bezug
SETH Setzen nächste kleinste fehlende Zahl
COlJS Konsistenzbestiimiung der Tabellen
CURR Prozeß laufender Bezug
ULRU Fortschreibung der LRU-Zahlen
OUTC Ausgabezähler
SERM Suche in der Einheit (MIN box)
BUBL Blasensortierung durchführen
P ROGRAMME
P rogr amins t ruktur
P rogr amins t ruktur
Es gibt vier Unterprogramme, zwei (INIT und PGEX) werden angenommenermaßen
durch das zum Datenverarbeitungssystem gehörende Betriebssystem aufgerufen. Das Programm INIT initialisiert das Gerät.
Das Programm PGEX wird bei jeder Seitenausnahmeunterbrechung angefangen und ruft das Programm SERM (Suche im Gerät (MIN Kasten)
und BUBL (Blasensuche ausführen) auf. Das Programm PGEX empfängt die Veränderliche K als Parameter.
Funktionen (im Sinne der Programmiersprache PL/I)
IND(C,J) führt den Index I der Eintragung T(I, J) zurück, sodaß
C = T(I, J) ist.
EXEC (J, LOC) oder EXEC (J) führt besondere Maschineninstruktionen
wie folgt aus:
YO 973 039
509807/1012
1. Setzt den Teil-Pseudo-OPT-Stapel und die Zähler
in der Anlage auf null zurück.
2. Liest den Inhalt der Anlage (den Teil Pseudo-OPT-Stapel
und die Zähler) in die aufeinanderfolgenden 211 Stellen, beginnend mit LOC.
3. Setzt die virtuelle Adresse der M-ten zuletzt angezogenen Seite in LOC.
4. Schiebt den Teil Pseudo-OPT-Stapel um eine Position
herunter und setzt oben die Zahl von
LOC ein.
LOC ein.
Die Programme werden jetzt beschrieben. In Fig. 10 besteht die Initialisierungsroutine im wesentlichen aus dem Schritt 602,
d.h. EXEC (1). Nach Darstellung in der obigen Beschreibung von EXEC wird durch den Schritt 602 der Teil Pseudo-OPT-Stapel P
und die Zähler in der Anlage auf null gesetzt, wobei der Kasten 604 die Rückkehr darstellt.
d.h. EXEC (1). Nach Darstellung in der obigen Beschreibung von EXEC wird durch den Schritt 602 der Teil Pseudo-OPT-Stapel P
und die Zähler in der Anlage auf null gesetzt, wobei der Kasten 604 die Rückkehr darstellt.
Wenn die Seitenaufnahme auftritt gemäß Darstellung durch Block 606, wird das Programm PGEX (Seitenausnahme) zu einer Seitenausnahmeunterbrechung
angefangen). Die K-Operation'liefert die virtuelle
Adresse der Seiten, die die Ausnahme verursacht hat, und wird geladen, bevor die PGEX-Routine aufgerufen wird. Durch den
Schritt 608 wird der Inhalt des Teil Pseudo-OPT-Stapels und der Zähler in zwei aufeinanderfolgende M Stellen gelesen, beginnend
mit der Stelle LOC, d.h. MBOX. Durch den Schritt 610 wird geprüft, ob der Wert von LMAX, d.h. die Zahl der bis zu diesem
Punkt angezogenen unterschiedlichen Seiten kleiner ist als der Wert von M, der eine Konstante und die Zahl der Seitenrahmen
im echten Speicher ist. Falls der Schritt 6IO die Antwort "ja"
erhält, geht das Programm weiter zum Schritt 612, d.h. der Verarbeitung der neuen Referenz (NEWR). Wenn der Schritt 610 jedoch die Antwort "nein" erhält, geht das Programm zum Schritt
Punkt angezogenen unterschiedlichen Seiten kleiner ist als der Wert von M, der eine Konstante und die Zahl der Seitenrahmen
im echten Speicher ist. Falls der Schritt 6IO die Antwort "ja"
erhält, geht das Programm weiter zum Schritt 612, d.h. der Verarbeitung der neuen Referenz (NEWR). Wenn der Schritt 610 jedoch die Antwort "nein" erhält, geht das Programm zum Schritt
YO 973 039
509807/1012
614, wo der Schritt EXEC (3, REPL) ausgeführt wird, d.h., die virtuelle Adresse der M-ten zuletzt angezogenen Seite wird nach
REPL gesetzt, wo dann die virtuelle Adresse der ersetzten Seite enthalten ist. Vom Schritt 614 geht das Programm zum Block 616,
v/o zuerst in einem Schritt T auf den Wert von M und T (REPL) auf den Wert von MBOX (M) gesetzt wird. Diese beiden Schritte
bringen natürlich die T(I, J) Tabelle auf den neuesten Stand. Durch den Schritt 618 wird jetzt geprüft, ob T (K, 1) größer als
null ist. Erhält der Schritt 618 die Antowrt "nein", verzweigt
das Programm zum Schritt 612 zurück, v/o die neue Referenz verarbeitet wird (NEWR). Wenn der Schritt 618 jedoch die Antwort
"ja" erhält, wird die nächste kleinste fehlende Zahl gesetzt (SETO) .
Das Ablaufdiagramm der Fig. 15 zeigt die Operation der NEWR-Routine
(Verarbeitung neue Referenz) des Schrittes 612, die Seitenausnahmeroutxne (PGEX), wie sie in dem Ablaufdiagramm der
Fig. 11 gezeigt ist. In dieser HEWR-Routine wird der Ausdruck
LMAX um eins erhöht, die BUFF-Stelle, d.h., die vorrübergehende
Stelle des MMC auf den Viert von LMAX gesetzt und die T Tabelle durch Setzen von T(K, 1) gleich dem Wert von BUFF auf den
neuesten Stand gebracht. Diese drei Schritte sind alle im Ablaufdiagramm im Block 623 gezeigt. Wenn sie beendet sind, geht
die Routine zum Schritt 624, wo geprüft wird, ob LMAX gleich 1 ist. Lautet die Antwort ja, geht das Programm zum Schritt 6 26,
wo die OUTC-Routine, d.h. der Ausgabezählerschritt, ausgeführt wird und eine Eintragung des CTAB um 1 erhöht wird. Wenn die
Antwort im Schritt 624 jedoch nein lautet, wird die ULRU-Routine des Schrittes 628 ausgeführt, in der alle LRU-Zahlen in der
LRU-Liste auf den neuesten Stand gebracht werden, wie es oben für den LRU-StapeI beschrieben wurde.
Im Ablaufdiagramm der Fig. 12, welches das Programm dafür ist, die genannte OPT-Liste im Speicher in Konsistenz mit der Verarbeitung
der die Ausnahme verursachenden Seite zu bringen, hat der Schritt 630 die Bezeichnung SETN, d.h., daß Setzen der näch-
YO 973 039
509807/1012
sten kleinsten fehlenden Zahl SMN auf 1. Durch den Schritt 6 32
wird die Konsistenz der Tabellen festgelegt (CONS) durch Aufruf der SERM-Routine, der Suche in der Anlage (MBOX). Als Antwort
auf den Schritt 6 32 wird der Schritt 6 34, d.h. SERM, ausgeführt und dann kehrt das Programm zurück. Im Schritt 6 36 wird I auf
1 gesetzt und im Schritt 638 geprüft, ob T (I, 2) gleich SMN ist. Mit dieser Prüfung soll festgestellt werden, ob der Punkt in
Spalte 2 in der T Tabelle gleich dem Wert der kleinsten fehlenden Zahl ist (SMN). Wenn der Schritt 638 die Antwort ja erhält, verzweigt
das Programm zurück zum Schritt 632, wo die Konsistenz der Tabellen festgelegt wird (CONS). Wenn der Schritt 6 38 jedoch
die Antwort nein erhält, dann läuft das Programm zum Schritt 642, wo der Wert von I um 1 erhöht wird und im Schritt 6 44 wird
geprüft, ob der Wert von I den Wert von N, die Anzahl der Seiten im virtuellen Speicher, überschreitet. Danach läuft das Programm
durch die Schritte 638, 640, 642 und 644 nacheinander immer wieder in einer Schleife, bis der Schritt 644 das Ergebnis ja
bringt, woraufhin das Programm zum Schritt 646 geht.
Im Schritt 6 46 wird geprüft, ob der Wert von LMAX kleiner ist als der Wert von SMN. Lautet die Antwort nein, geht das Programm
zum Block 648, wo der Ausdruck L(der vorrübergehende LRü-Index)
auf den Wert von M(Anzahl von Seitenrahmen im realen Speicher) gesetzt und die Blasensortierung (BUBL) aufgerufen wird, die
durch den Schritt 650 dann ausgeführt wird. Die Blasensortierung erfolgt nach dem oben gegebenen Algorithmus. Das Programm verzweigt
zum Schritt 6 32 (CONS) zurück, wodurch die Konsistenz der Tabellen festgelegt ist.
Wenn der Schritt 646 die Antwort ja erhält, geht das Programm zum Block 654 mit der Beschriftung CURR (Prozeß laufender Referenz)
, worin der vorrübergehende LRU-Index L auf den Wert T (K, l) -l gesetzt und die Blasensortierung aufgerufen wird,
die durch den Schritt 656 ausgeführt wird, und dann kehrt das Programm zurück.
YO 973 039
509807/1012
Im Block 658 erfolgt die ULRU-Operation, d.h., die LRU-Liste
wird auf den laufenden Stand gebracht. Zu diesem Zweck wird I auf el gesetzt. Im Block 6 60 wird geprüft, ob T (I, 1) kleiner
ist als T (K, 1). Wenn der Schritt 660 die Antwort ja erhält, dann wird im Schritt 662 der Wert T (I, 1) um 1 erhöht. Das Programm
geht dann zum Schritt 664, wo I um 1 erhöht wird. Wenn der Schritt 660 jedoch die Antwort nein erhält, geht das Programm
direkt vom Schritt 660 zum Schritt 664. Im Schritt 666 wird geprüft,
ob der Wert I größer ist als der Wert von N, Anzahl von Seiten im virtuellen Speicher. Wenn der Schritt 666 die Antwort
nein erhält, verzweigt das Programm zum Schritt 6 60 zurück. Das Programm durchläuft immerwieder die Schritte 6 60, 6 62, 664 und
666, bis der Schritt 666 die Antwort ja erhält und dann geht das Programm weiter zum Schritt 668. Im Schritt 668 wird T (IND(I, 2),
2) gleich dem Wert von BUFF gesetzt, der im BUBL-Programm festgelegt wurde. Damit ist die ULRU-Operation beendet.
Im Block 670, CTAB (BUFF) wird der durch den BUFF-Wert indexierte
Viert in der CTAB-Tabelle um 1 erhöht und die Instruktion EXEC (4, BUFF) ausgeführt, d.h. der OPT-Stapel wird um 1 heruntergesetzt
und oben auf die Zahl aus der BUFF-Stelle gesetzt, die T-Tabelleneintragung T (K, ), d.h. beide Eintragungen der
Zeile K werden auf 1 gesetzt. Der Block 672 stellt den Rückkehrschritt dar.
Das Programm im Ablaufdiagramm der Fig. 13 zeigt die SERM-Routine,
d.h. die Suche im M-Kasten. In dieser Routine wird im Schritt 6 74 der Wert von SMN (kleinste fehlende Zahl v/ährend der
Suche) um 1 erhöht und im Schritt 676 der Wert I auf 2 gesetzt. Im Schritt 678 wird geprüft, ob der Wert von SMN gleich dem Wert
von MBOX (I) ist. Wenn der Schritt 678 die Antwort ja erbringt, verzweigt das Programm zum Schritt 674 zurück und läuft in einer
Schleife immerwieder durch die Schritte 6 74, 6 76 und 678, bis der Schritt 678 die Antwort nein erhält, worauf das Programm zum
Schritt 680 weitergeht, wo der Wert um 1 erhöht wird. Im Schritt 6 82 wird geprüft, ob der Wert I den Wert von M übersteigt. (An-
YO 9 73 039
509807/1012
zahl von Seitenrahmen im realen Speicher). Wenn der Schritt 682
die Antwort nein erhält, verzweigt das Programm zurück zum Schritt 674 und läuft in einer Schleife wiederholt durch die Schritte
674, 676, 678, 680 und 682, bis der Schritt 682 die Antwort ja
erhält, woraufhin nach Darstellung durch den Block 684 das Programm zurückkehrt.
Das Ablaufdiagramm in Fig. 14 zeigt die Blasensuche (BUBL). Im
ersten Schritt 686 dieser Suche wird L (vorrübergehender LRU-Index)
um 1 erhöht. Im Schritt 687 wird geprüft, ob die Eintragung in der T-Tabelle (T(IND(L, 1),2) kleiner ist als der Wert
von SMN. Wenn der Schritt 686 die Antwort ja erhält, geht das Programm zum Block 688, wo der Wert von BUFF, d.h. die vorrübergehende
Stelle des MMC auf den Wert von T (IND, L, 1), 2) und dieser Wert von BUFF gesetzt wird. Das Programm geht dann zum
Schritt 690, wo geprüft wird, ob der Wert von L kleiner ist als
der Wert von LMAX. Falls der Schritt 687 die Antwort nein erg ibt, geht das Programm direkt von dort zum Schritt 690. Wenn der
'Schritt 690 die Antwort ja erhält, verzweigt das Programm zurück zum Schritt 6 86 und läuft immerwieder in einer Schleife durch
die Schritte 686, 687, 688 und 690, bis der Schritt 690 die Antwort nein erhält. An diesem Punkt kehrt das Programm, symbolisch
dargestellt durch den Schritt 692, zurück.
YO 973 039
509807/1012
Claims (5)
1. Verfahren zum Betrieb und zur Bewertung eines virtuellen Speichers in einer Datenverarbeitungsanlage, deren Programme
auf verschiedene Datenseiten Bezug nehmen, sowie zur Bestimmung der minimalen Speicherkapazität für diese
Datenseiten, mit einer ersten Liste der Bezeichnungen dieser Datenseiten und einer zugehörigen diskfiten Zahl von
1 bis η (n = Gesaintanzablseiten in diesem Programm) , die angibt, wie weit die letzte Benutzung dieser Seite zurückliegt,
dadurch gekennzeichnet, daß eine zweite Liste dieser Namen aufgestellt wird, die aus einer geordneten Reihenfolge von
η Adressen besteht, die jede einen ganzzahligen Wert von 1 bis η haben, wobei an jeder dieser Adressen eine Zahl
C gespeichert ist, mit der die minimale Speicherkapazität (MMC) dieser Seite bestimmt werden kann und wobei die Zahlen
C Werte von 1 bis η aufweisen,
daß zu jeder adressierten Seite diese Mindestspeicherkapazität (MMC) dadurch festgestellt wird, daß die zweite Liste
in eine erste Gruppe von Adressen aufgeteilt wird, die Werte von 1 bis (1-1) aufweisen, sowie in eine zweite Gruppe
von Adressen, die Werte von 1 bis η aufweisen, worin 1 gleich ist der diskreten Zahl, die zu dieser adressierten
Seite in der ersten Liste gehört, und daß die Adresse k in der zweiten Gruppe bestimmt wird,
in der der niedrigste Wert MMC gespeichert ist.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Adressenreihe in der zweiten Gruppe festgehalten wird,
die sich in der Untergruppe mit den Adressen 1, (1+1), ..., (k-1) befindet und die folgenden Werte hat (1+a), (1+b),
(1+c), ..., bis nötigenfalls zur Adresse (k-1), worin die Adresse (1+a) der kleinste Adressenwert ist, der größer
ist als 1, derart, daß C (1+a) kleiner ist als C (1), worin (1+b) der kleinste Adressenwert ist, der größer ist als
(1+a) derart, daß C (1+b) kleiner ist als C (1+a), usw.,
YO 973 039 A Λ
509807/1012
daß die kleinste Fehlzahl in der Gruppe von Zahlen zwischen 2 bis (C +1) festgestellt wird, worin C die
max max
größte Zahl C unter den Zahlen ist, die in den Adressen 2 bis (1-1) enthalten sind, wobei diese kleinste Fehlzahl
die Mindestspeicherkapazität der genannten Seite darstellt,
daß jede der Adressen 2 bis (1-1) der ersten Gruppe um 1 erhöht wird,
daß der Adressenwert 2 dieser festgestellten kleinsten Fehlzahl zugeteilt wird,
und daß jeder dieser Reihe von festgestellten Adressen der Wert der nächsten Adresse in der Reihe zugeteilt wird,
wobei der höchste Adressenwert in dieser Reihe den Wert k erhält und wobei die Zahl, die ursprünglich an der Adresse
k vorhanden war, ausscheidet.
3. Verfahren nach Anspruch 2 mit einem Hauptspeicher zur Speicherung von m Datenseiten und einem Zusatzspeicher
zur Speicherung der restlichen (n-m) Seiten, dadurch gekennzeichnet, daß den in der ersten Liste gespeicherten
Bezeichnungen gewichtete Zahlen zur Angabe der Zeitspanne, während der die Datenseite unbenutzt blieb,
zugeteilt werden, die Werte von 1 bis m annehmen (LRU-Gewichte),
daß in einem zweiten Teil der ersten Liste die Bezeichnungen der restlichen Seiten dieses Programms zusammen mit
LRü-Gewichten von (m+1) bis η gespeichert sind, daß die zweite Liste in einem ersten Teil die Zahlen C an
den Adressen 1 bis m speichert,
daß in einem zweiten Teil der zweiten Liste Ergänzungsdaten zur gesamten zweiten Liste enthalten sind,
und daß bei einem Zugriff zu einer Datenseite im Hauptspeicher der 1. Teil der Liste in eine 1. Adresseng ruppe mit
den Werten 1 bis (1-1) und in eine 2. Gruppe mit den Werten 1 bis m unterteilt wird, worin 1 gleich ist dem LRV-Gewicht
der adressierten Seite im 1. Teil der 1. Liste
Y0 973039 509807/1012
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß
beim Feststellen einer Fehlseite (Seite nicht im Hauptspeicher vorhanden) der zweite Teil der zweiten Liste an
den Adressen 1 bis m in Übereinstimmung gebracht wird mit der Information in den Adressen 1 bis m im ersten Teil
der zweiten Liste,
daß die Bezeichnung der Fehlseite in den ersten Teil der ersten Liste zusammen mit einem LRU-Gewicht von 1 eingeschrieben
wird,
daß die Bezeichnung dieser Seite in den zweiten Teil der zweiten Liste eingetragen wird, wobei das LRU-Gewicht von
m auf (m+1) geändert wird,
daß die übrigen LRU-Gewichte im ersten Teil um 1 erhöht werden,
daß diejenigen LRU-Gewichte im zweiten Teil der ersten Liste, die Werte hatten von (m+1) bis zu einem Wert der
um 1 niedriger liegt als der LRU-Wert der Fehlseite unmittelbar vor dem Feststellen des Fehlens der Seite um 1 erhöht
werden und
daß der erste Teil der zweiten Liste fortgeschrieben wird, wobei die Information an den Adressen 1 bis m im ersten
Teil in Übereinstimmung gebracht werden mit der Information an den Adressen 1 bis m des zweiten Teiles.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß überflüssige LRU-Gewichte entfernt werden und fehlende
LRU-Gewichte in die zweite Liste eingesetzt werden.
C )
ίβΛ Einrichtung zur Durchführung des Verfahrens nach den vorhergehenden
Ansprüchen, dadurch gekennzeichnet, daß die genannten Listen als zweidimensionale Schieberegister ausgeführt
sind (Fig. 2), daß Zähleinrichtungen vorgesehen sind, mit denen die Inhalte der Register erhöht werden
können, daß Steuereinrichtungen vorgesehen sind zum Verschieben der Registerinhalte aus einem Teil des Stapels
in einen anderen Teil und daß zum Feststellen einer klein-
VO973039 509807/1012
sten Fehlzahl in den Registern ein zusätzlxchers Register vorgesehen ist, in dem Zahlen von 2 bis η gespeichert werden
können, die nacheinander mit den Inhalten der einzelnen Register vergleichen werden.
YO 973 039
509807/1012
Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US385222A US3921153A (en) | 1973-08-02 | 1973-08-02 | System and method for evaluating paging behavior |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2433377A1 true DE2433377A1 (de) | 1975-02-13 |
Family
ID=23520534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2433377A Withdrawn DE2433377A1 (de) | 1973-08-02 | 1974-07-11 | Einrichtung und verfahren zur auswertung von datenseiten-transportvorgaengen in datenverarbeitungsanlagen |
Country Status (4)
Country | Link |
---|---|
US (1) | US3921153A (de) |
JP (1) | JPS5610709B2 (de) |
DE (1) | DE2433377A1 (de) |
GB (1) | GB1436488A (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4286330A (en) * | 1976-04-07 | 1981-08-25 | Isaacson Joel D | Autonomic string-manipulation system |
US4056848A (en) * | 1976-07-27 | 1977-11-01 | Gilley George C | Memory utilization system |
JPS58130504U (ja) * | 1982-02-27 | 1983-09-03 | 日本軽金属株式会社 | 方立の支持構造 |
US4511994A (en) * | 1982-09-27 | 1985-04-16 | Control Data Corporation | Multi-group LRU resolver |
JPS6280743A (ja) * | 1985-10-01 | 1987-04-14 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | アドレス変換例外処理方法 |
JPS6261811U (de) * | 1985-10-08 | 1987-04-17 | ||
US4782444A (en) * | 1985-12-17 | 1988-11-01 | International Business Machine Corporation | Compilation using two-colored pebbling register allocation method such that spill code amount is invariant with basic block's textual ordering |
CA2697948A1 (en) * | 2007-08-31 | 2009-03-05 | Papier Virtuel Inc./Virtual Paper Inc. | System and method for the automated creation of a virtual publication |
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 US385222A patent/US3921153A/en not_active Expired - Lifetime
-
1974
- 1974-06-12 GB GB2599074A patent/GB1436488A/en not_active Expired
- 1974-07-05 JP JP7651674A patent/JPS5610709B2/ja not_active Expired
- 1974-07-11 DE DE2433377A patent/DE2433377A1/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JPS5610709B2 (de) | 1981-03-10 |
US3921153A (en) | 1975-11-18 |
JPS5040241A (de) | 1975-04-12 |
GB1436488A (en) | 1976-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1499244B2 (de) | Steuergerät | |
DE3320213C2 (de) | ||
DE1524225B2 (de) | Verfahren zum betriebe einer redigier- und wiedergabeeinrichtung | |
DE2521436B2 (de) | Informationswiedergewinnungsanordnung | |
DE2023354A1 (de) | Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit | |
DE1303071B (de) | ||
DE2551238A1 (de) | Informationsuebertragungseinrichtung | |
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE2252279A1 (de) | Verfahren und anordnung zur aenderung der relativen lage wenigstens eines informationsbits in einem datenstrom | |
DE2433377A1 (de) | Einrichtung und verfahren zur auswertung von datenseiten-transportvorgaengen in datenverarbeitungsanlagen | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2506671C3 (de) | Binärdaten-Handhabungsnetzwerk | |
DE3209187A1 (de) | Verfahren zur darstellung eines textes auf einer einzeiligen anzeigevorrichtung eines texterstellungsgeraetes | |
DE2436932A1 (de) | Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher | |
DE1424706A1 (de) | Verfahren zur Auswertung einer Vielzahl von Informationen | |
DE1774675A1 (de) | Elektronisches Rechengeraet | |
DE2641971A1 (de) | Digitale tisch-buchungs- und -rechenmaschine | |
DE1132747B (de) | Elektronische Rechenmaschine | |
DE1524169A1 (de) | Divisionseinrichtung | |
DE2519195C2 (de) | Assoziativspeicher | |
DE2265696C2 (de) | Rechenanordnung | |
DE4119717C2 (de) | Dokumentlayoutverarbeitungsverfahren und Vorrichtung zu dessen Durchführung | |
DE1090885B (de) | Parallel arbeitende, synchrone, elektrische, binaerrechnende Zahlenrechenmaschine, welche die Operation x+yz selbsttaetig auszufuehren vermag | |
DE1524117C (de) | Datenverarbeitungsanlage mit Umlaufregistern | |
DE2257350C3 (de) | Elektronische Rechenmaschine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8141 | Disposal/no request for examination |