DE2047062A1 - Verfahren und Einrichtung zur Messung der Effektivität einer Daten Verarbeitungsanlage mit virtueller Adre»»ici uiig - Google Patents

Verfahren und Einrichtung zur Messung der Effektivität einer Daten Verarbeitungsanlage mit virtueller Adre»»ici uiig

Info

Publication number
DE2047062A1
DE2047062A1 DE19702047062 DE2047062A DE2047062A1 DE 2047062 A1 DE2047062 A1 DE 2047062A1 DE 19702047062 DE19702047062 DE 19702047062 DE 2047062 A DE2047062 A DE 2047062A DE 2047062 A1 DE2047062 A1 DE 2047062A1
Authority
DE
Germany
Prior art keywords
block
memory
interval
exchange
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE19702047062
Other languages
English (en)
Inventor
Laszlo Antal Yorktown Heights NY Belady (V St A )
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2047062A1 publication Critical patent/DE2047062A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

IBM Deutschland internationale Büro-Maathinen Gesellschaft mbH
Böblingen, den 15. September 1970
km-rz
AnmeLderin: International Business Machines
Corporation, Armonk, N.Y. IO
AmtLLehes Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: Docket YO 968 098
Verfahren und Einrichtung zur Messung der Effektivität einer Datenverarbeitungsanlage mit virtueller Adressierung
Die Erfindung betrifft ein Verfahren zur Messung der Effektivität einer das Prinzip der virtuellen Adressierung benutzenden Datenverarbeitungsanlage beim Austausch von Informationsblöcken zwischen einem mit einer Verarbeitungseinheit in Verbindung stehenden schnellen Arbeitsspeicher begrenzter Kapazität und einem langsameren Großraumspeicher. Die Erfindung betrifft ferner eine Einrichtung für Datenverarbeitungsanlagen zur Ausführung dieses Verfahrens.
Es sind bereits Datenverarbeitungsanlagen bekannt, die einen schnellen Datenspeicher mit verhältnismäßig beschränkter Speicherkapazität, wie beispielsweise einen Kernspeicher, in i Verbindung mit einem langsameren externen Speicher großer Kapazität benutzen, wie beispielsweise einen Magnetband-, Magnetplatten- oder Magnettrommelspeicher (Deutsches Patent 1 18L 460). Diese Anlagen arbeiten in der Weise, daß eine relativ kleine Anzahl von Informationsblöcken oder "Seiten", die gerade von der Verarbeitungseinheit des Systems benötigt werden, im schnellen Speicher, der auch Arbeitsnpeicher genannt werden kann, aufbewahrt werden. Aus diesem Speicher ist ein schneller Aufruf der darin gespeicherten Daten durch die Verarbeitungseinheit möglich. Alle übrigen Informatlonublöcke oder "Seiten", die in einer bestimmten Arbeltijphaae der Anlage jeweils den größeren Teil der gespeicherten Informationen ausmachen, sind im externen Speicher untergebracht. Anfänglich be-
10 9 8 16/1875
20A7062
finden sich alle Informationen im externen Speicher. Sobald ein Block von der Verarbeitungseinheit angefordert wird, wird er von dort in den schnellen Speicher unter der Annahme übertragen, daß die zentrale Verarbeitungseinheit mit Fortschreiten ihres Programmes wahrscheinlich mehrere Aufrufe von Informationen in diesem Block ausführen wird. Der gleiche Informationsblock ist unter seiner ursprünglichen Blocknummer bzw. Externspeicheradresse im externen Speicher auffindbar, trotzdem er inzwischen unter einer der verfügbaren Adressen des schnellen Speichers von der Verarbeitungseinheit aufgerufen wird. Ein solches Adressierungsprinzip wird "virtuelle Adressierung" oder "virtuelle Speicherung" genannt. Datenverarbeitungsanlagen dieser Art haben den Vorteil, daß die meisten von ihnen verarbeiteten Informationen in billigen Großraumspeichern gespeichert werden können und dessen ungeachtet eine hohe Wirtschaftlichkeit beim Betrieb der Anlagen gewährleistet ist.
Wenn ein schneller Speicher in einer Datenverarbeitungsanlage der erläuterten Art bis zur Grenze seiner Kapazität mit Informationsblöcken gefüllt worden ist und eine Anforderung nach einem weiteren Informationsblock von der Verarbeitungseinheit eintrifft, welcher nicht bereits im schnellen Speicher steht, muß eine Entscheidung getroffen werden, welcher der gegenwärtig im schnellen Speicher enthaltenen Blöcke gegen den neu angeforderten Block ausgetauscht werden soll. Das Verfahren, nach dem diese Entscheidung getroffen wird, nennt man einen "Blockaustauschalgorithmus". Im Idealfall sollte ein Blockaustauschalgorithmus so funktionieren, daß die Zahl der Blockübertragungen zwischen dem externen Speicher und dem schnellen Speicher minimal gehalten wird, um die für diese Übertragungen notwendige Operationszeit der Anlage auf ein Minimum zu senken. Dies bedeutet, daß ein Austauschalgorithmus darauf achtet, daß wenig benutzte Inforraationsblöcke nur jeweils für kurze Zeit im schnellen Speicher belassen werden, um zu vermeiden, daß häufig benutzte Informationsblöcke unnötig oft zwischen dem externen Speicher und dem schnellen Speicher hin- und herübertragen werden müssen. Diese unnötigen Übertragungen verringern die
Docket YO 968 098 109816/1875
2 (j A 7 O 6
Effektivität einer Datenverarbeitungsanlage der beschrj ebenen Art. Es ist in der Praxis nicht möglich, für diesen Zweck eine ideale Betriebsweise zu erreichen, da die Entscheidung über die Wahl des auszutauschenden Blockes unmittelbar und ohne Zeitverzögerung zu treffen ist und da zum Zeitpunkt der Entscheidung nicht bekannt ist, welche Blöcke im folgenden Abschnitt des Programms der Verarbeitungseinheit aufgerufen werden« Es kann deshalb sein, daß eine getroffene Austauschentscheidung kurze Zeit später zu einer an sich unnötigen Rückübertragung führt. Es sind bereits zahlreiche Blockaustauschalgorithmen bekannt (z.B. The Computer Journal, Vol. 13, Hr. 1, Febr. 1970, Seiten λ 48-54 und IBM Systems Journal, Vol. 5, 1966, Nr. 2, Seiten 78-101). Nicht alle dieser Algorithmen sind für jedes Programm bzw. für eine bestimmte Klasse von Programmen der Datenverarbeitungsanlage gleich gut geeignet. Die Wahl des Austauschalgorithmus hat vielmehr einen direkten Einfluß auf die Effektivität einer Datenverarbeitungsanlage der erläuterten Art.
Es ist nicht einfach, mit herkömmlichen Mitteln festzustellen, ob ein gewählter Austauschalgorithmus eine optimale Effektivität der Anlage gestattet. Um dies herauszufinden, sind üblicherweise umständliche, zeitverbrauchende und der elektronischen Datenverarbeitung nicht ohne weiteres zugängliche Analysen notwendig. Außerdem sind diese Verfahren in ihrem prakti- \ sehen Aussagewert so unvollkommen, daß ein aussagekräftiger Vergleich zwischen den verschiedenen Austauschalgorithmen im Hinblick auf ein bestimmtes Anwendungsprogramm nicht möglich ist.
Es ist die Aufgabe vorliegender Erfindung, ein Verfahren anzugeben, durch das eine dynamische und automatische Messung der Effektivität der Arbeitsweise einer Datenverarbeitungsanlage mit virtueller Adressierung bei der Benutzung eines gewählten Blockaustauschalgorithmus für ein bestimmtes Verarbeitungsprobl <=m möglich ist. Das Verfahren soll beim Betrieb der Datenverarbeitungsanlage zur Lösxing des betreffenden Verarbeitungsprobleras ausführbar sein, ohne daß dadurch die Wirksamkeit der Anlage Docket YO 968 098 109816/18 7 G
spürbar vermindert wird. Das erfindungsgemäße Verfahren kennzeichnet sich dadurch, daß Austauschintervalle gezählt werden, von denen jedes mit der Anforderung eines nicht im schnellen Speicher bzw. im Arbeitsspeicher verfügbaren Blockes durch die Datenverarbeitungsanlage beginnt und mit der nächsten solchen Anforderung endet, daß die Adressen der aus dem schnellen Speicher bzw. Arbeitsspeicher aufgerufenen Blöcke mit einem Kennzeichen markiert werden, daß eine Tabelle gespeichert wird, durch die eine Beziehung zwischen einer einen aufgerufenen Block identifizierbaren Angabe und der Nummer des Austauschintervalles, in welchem der betreffende Block nach einem optimalen Austauschalgorithmus letztmalig aufgerufen worden wäre, hergestellt wird, daß am Beginn eines jeden neuen tatsächlichen Austauschintervalles und vor Empfang des angeforderten Blockes im Arbeitsspeicher unter Verwendung der gespeicherten Kennzeichen- und Tabellenwerte die jeweilige Zahl der Austauschintervalle bestimmt wird, die nach dem optimalen Austauschalgorithmus notwendig gewesen wäre und daß aus der Differenz zwischen der Zahl der tatsächlich ausgeführten Austauschintervalle und der Zahl der, nach dem optimalen Algorithmus notwendigen Austauschintervalle ein Zählwert für die unnötigen Blockaustauschoperationen gebildet wird.
Beim Verfahren gemäß der Erfindung wird ein Vergleich der Zahl der Austauschoperationen, die nach dem gewählten Austauschalgorithmus bei der Lösung einer Datenverarbeitungsaufgabe von der Anlage ausgeführt werden, verglichen mit denjenigen Austauschoperationen (optimale Austauschintervalle), die jeweils von einer nachfolgenden Operationsphase aus rückwirkend betrachtet notwendig gewesen wären. Hierbei ergibt sich eine Zahl der unnötigen Übertragungsoperationen, die als Meßwert für die Effektivität der Anlage dienen kann. Die Vergleichs-, Bewertungs- und Meßwertbildungsoperationen werden jeweils dann ausgeführt, wenn von der Verarbeitungseinheit ein neuer Informationsblock angefordert wurde, der nicht im schnellen Speicher.vorhanden ist und deshalb aus dem langsameren externen Speicher geholt werden muß. Durch Ausnutzung der hierbei ohnedies auftretenden Unter-
Docket YO 968 098 109816/1875
brechungsphase wird jeweils nur ein kleiner Teil Operationszeit des Systems, für die Ausführung der Effektivitätsmessung verbraucht.
Eine vorteilhafte Einrichtung für Datenverarbeitungsanlagen der genannten Art zur Durchführung des Verfahrens besteht gemäß der Erfindung darin, daß eine in der Zeit der übertragung eines von der zentralen Verarbeitungseinheit angeforderten, nicht im schnellen Speicher bzw. Arbeitsspeicher verfügbaren Informationsblockes vom langsameren Großraumspeicher zum schnellen Speicher bzw. Arbeitsspeicher in Tätigkeit setzbare Steuerschaltung vorgesehen ist, daß je ein Zähler für die nach einem benutzten Block- > austauschalgorithmus tatsächlich ausgeführten und für die nach einem optimalen Blockaustauschalgorithmus nachträglich als notwendig erkannten Blockaustauschoperationen vorgesehen ist, daß ein inhaltsadressierbarer Zuordnungsspeicher vorgesehen ist, in dem zu jeder Arbeitsspeicheradresse eine Blockidentifizierungsangabe (Blocknummer) speicherbar ist, über welche bei einem Blockaufruf die zugehörige Arbeitsspeicheradresse erhalten wird, daß in den Blockidentifizierungsangabe/Arbeitsspeicheradresse-Eintragungen im Zuordnerspeicher jeweils das Kennzeichen für einen Aufruf des betreffenden Blockes enthalten ist und daß von der Steuerschaltung betätigte Einrichtungen zum Vergleich der Angaben über das jeweilige Austauschintervall und den angeforderten Block vorgesehen sind. f
Weitere vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind aus den Ansprüchen zu ersehen. Nachfolgend ist ein Ausführungsbeispiel der Erfindung anhand von Zeichnungen erläutert. Es zeigen:
Fig. 1 ein verallgemeinertes Blockschaltbild einer Datenverarbeitungsanlage mit virtueller Adressierung bzw. virtueller Informationsspeicherung, in welcher die Erfindung angewendet wird,
Fign. 2, 3, 4A, 4B und 5
Tabellen für einige Beispiele von Blockaustausch-
Docket YO 968 098 10 9 816/1875
folgen zur Erläuterung der Prinzipien vorliegender Erfindung,
Fign. 6 und 7 Blockschaltbilder für den Funktionsfluß bei der
Ausführung des erfindungsgemäßen Meßverfahrens,
Fig. 8 die Zusammengehörigkeit der Fign. 8A bis 8D,
Fign. 8A-8D ein Blockschaltbild eines assoziativen Speichers,
wie er zur Ausführung des erfindungsgemäßen Ver- ^ fahrens verwendet wird,
Fig. 9 die Zusammengehörigkeit der Fign. 9A bis 9K,
Fign. 9A-9K ein Blockschaltbild einer bevorzugten Einrichtung zur Ausführung des erfindungsgemäßen Verfahrens ,
Fig. 10 ein detailliertes Blockschaltbild eines Tabellenspeichers, wie er in der Einrichtung von Fig. 9A bis 9K verwendet wird,
Fig. 11 die Zusammengehörigkeit der Fign. HA bis HD,
Fign. HA-HD ein Funktionsfluß-Blockschaltbild zur Erläuterung der Arbeitsweise der Einrichtung von Fig. 9A bis 9K,
Fign. 12A-121» schematische Darstellungen zur Arbeitsweise der
Einrichtung nach den Fign. 9A bis 9K bei der Ausführung der in den Fign. 4A und 4B dargestellten Folge von Blockaustauschoperationen,
Fig. 13 eine Tabelle für ein weiteres Beispiel einer Folge
von Austauschoperationen,'für die das erfindungsgemäße Verfahren anwendbar ist, und
Docket YO 968 098 109 816/1875
20A7062
Fign. 14A-14F schematische Darstellungen zur Erläuterung der
Arbeitsweise der erfindungsgemäßen Einrichtung bei der Ausführung der in Fig. 13 dargestellten Folge von Austauschoperationen.
Allgemeine Beschreibung des Ausführungsbeispiels In diesem Abschnitt wird die Organisation eines Datenverarbeitungssystems erläutert, das mit virtueller Speicherung arbeitet und bei dem die Erfindung verwirklicht wird. Anhand einer Anzahl von Anwendungsbeispielen werden die Funktionen eines optimalen Datenaustauschalgorithmus verglichen mit den Funktionen eines tatsächlich ausgeführten Datenaustauschalgorithmus. Die Erfindung ist nicht auf die dargestellten Algorithmentypen beschränkt; sie kann in Verbindung mit beliebigen Typen von Datenaustauschalgorithmen benutzt werden.
Die Fig. 1 zeigt ein Datenverarbeitungssystem mit sogenannter virtueller Speicherung, bei dem eine zentrale Verarbeitungseinheit CPU in direkter und ausschließlicher Verbindung mit einem schnellen Arbeitsspeicher WM begrenzter Kapazität steht. Der Speicher WM kann beispielsweise ein Magnetkernspeicher mit beliebigem Zugriff sein. Ein Datenverarbeitungssystem mit virtueller Speicherung ist durch den Umstand gekennzeichnet, daß die zentrale Verarbeitungseinheit CPU nicht in direkter Verbindung mit einem Ubertragungskanal CH steht, über welchen Informationen zu oder von einer externen Speichereinheit BS übertragen werden, die eine niedrigere Arbeitsgeschwindigkeit als der Arbeitsspeicher WM aufweist. Zu jeder Zeit, wenn die zentrale Verarbeitungseinheit CPU einen Block oder eine "Seite" von Informationen anfordert, wird ein entsprechendes Anforderungssignal zu einer Suchsteuerung SC geleitet. Die Suchsteuerung SC veranlaßt in einem Speicher AM mit assoziativer Adressierung eine Suchoperation auszuführen, durch welche bestimmt wird, ob der angeforderte Informationsblock im Arbeitsspeicher WM enthalten ist. Ist dies nicht der Fall, bewirkt die Suchsteuerung SC eine Weiterleitung des Anforderungssignals zu der Übertragungskanal- und Kanalsteuereinheit CH, welche den angeforderten Block aus dem externen Docket YO 968 098 10 9 816/1875
Speicher BS entnimmt und in den Arbeitsspeicher WM überträgt, wo er daraufhin für die zentrale Verarbeitungseinheit CPU verfügbar ist. Nach seiner Eingabe in den Arbeitsspeicher ViM hat der angeforderte Informationsblock zwei Adressen. Eine dieser Adressen ist die virtuelle Adresse oder Blocknummer im externen Speicher BS, und die andere ist die reale Arbeitsadresse im Arbeitsspeicher WM. Beide Adressen werden als einander zugehörig' in einer Zeile bzw. in einem Wortspeicherbereich des * Speichers AM zusammen mit noch zu beschreibenden Daten gespeichert. Mittels der Arbeitsspeichersteuerung WMC, dem Speicher AM mit assoziativer Adressierung und der Suchsteuerung SC kann eine logische Zuordnung zwischen der virtuellen Adresse oder Blocknummer und der Arbeitsspeicheradresse des Blockes, wenn dieser im Speicher WM gespeichert ist, hergestellt werden. Solange der vorerwähnte Informationsblock im Arbeitsspeicher WM verbleibt, wird jede Anforderung der zentralen Verarbeitungseinheit nach Informationen, die in diesem durch seine virtuelle Blocknummer identifizierten Block enthalten sind, direkt im Arbeitsspeicher WM wirksam, während der externe Speicher BS und die Übertragungskanal- und Kanalsteuereinheit von solchen Anforderungen unbeeinflußt bleibt. Ebenso erfolgt die Abspeicherung von durch die zentrale Verarbeitungseinheit verarbeiteten Informationen in einen Block, der eine Adresse im Hauptspeicher WM besitzt, direkt von der zentralen Verarbeitungseinheit CPU zum Arbeitsspeicher WM, ohne daß die Einheit CH und der externe Speicher BS an dieser Operation beteiligt sind.
Da der schnelle Arbeitsspeicher WM einen erheblich höheren Aufwand pro Speicherelement besitzt als der langsame externe Speicher BS, befindet sich der größte Teil der Speicherkapazität des Verarbeitungssystems im großen externen Speicher BS, während der Arbeitsspeicher WM nur eine beschränkte Speicherkapazität aufweist. Wenn der Speicher WM voll ist und die zentrale Verarbeitungseinheit CPU einen Informationsblock anfordert, der zu dieser Zeit nur im externen Speicher BS enthalten ist, wird ein Austausch eines im Speicher WM enthaltenen Blockes
Docket YO 968 098 109816/1875
durch den neu angeforderten Block notwendig. Ein solcher Austausch besteht in einfacher Weise aus einer Löschung oder überschreibung eines bestimmten Blockes im Arbeitsspeicher WM. Für den Fall, daß der Inhalt eines Blockes geändert worden ist, während er sich im Arbeitsspeicher WM befand, schließt die Austauschoperation auch eine übertragung des geänderten Blockes in den externen Speicher BS ein, wo der ursprüngliche Informationsblock gleicher Blocknummer durch den geänderten Blockinhalt überschrieben wird. Die Festlegung, welcher Block im Arbeitsspeicher WM auszutauschen ist, wird durch einen besonderen Austauschalgorithmus festgelegt. Dieser Austauschalgorithmus bewirkt mittels der verschiedenen Steuereinrichtungen SC, WMC und CH den jeweils benötigten Blockersatz. f Ob der Algorithmus diese Aufgabe mit hoher oder geringer Effektivität erfüllt, war bisher schwierig zu bestimmen. Durch die vorliegende Erfindung wird diese Bestimmung erheblich erleichtert und in der Praxis einfacher ausführbar.
Wenn in der nachfolgenden Beschreibung von dem "aktuellen Austauschalgorithmus11 oder einfach vom "Austauschalgorithmus" gesprochen wird, so ist damit der Austauschalgorithmus gemeint, der im dargestellten Datenverarbeitungssystem tatsächlich wirksam ist im Unterschied zu dem "optimalen Austauschalgorithmus", der die höchste Effektivität für das Programm haben würde, das gerade im Datenverarbeitungssystem läuft. Der optimale Austauschalgorith- ä mus 1st bestrebt, das Minimum an tatsächlich benötigten Blockaustauschoperationen zu finden. Dieses Minimum wird als 100 %-ige Effektivität bezeichnet. Wenn man die Gesamtzahl der Blockübertragungen in den Arbeitsspeicher WM festhält, die durch den tatsächlichen Austauschalgorithmus bewirkt werden, und von dieser Zahl die Zahl der Blockübertragungen zum Arbeitsspeicher WM subtrahiert, die vom optimalen Austauschalgorithmus während der Ausführung des gleichen Programmes bewirkt worden wären, ergibt sich als Differenz die Zahl der "unnötigen Übertragungen" (U). Wenn P die Gesamtzahl ist, wie oft Blöcke vom externen Speicher BS entnommen wurden, ergibt sich die Austauscheffektivität aus
Docket YO 968 098 109816/1875
- IO -
Wegen des Fehlens einer sicheren Methode für eine fundierte Auswahl unter den verschiedenen zur Verfügung stehenden Austauschalgorithmen auf der Basis von Effektivitätsvergleichsmessungen ist die Effektivität der in der Praxis zum Einsatz kommenden Austauschalgorithmen relativ gering zu bewerten (30 bis 50 %). Durch die Erfindung wird es möglich, Effektivitätsmessungen für Austäuschalgorithmen vorzunehmen, so daß der Benutzer schnell verschiedene Austauschalgorithmen in präziser Weise vergleichen kann und nicht auf Zufall oder Intuition bei der Auswahl eines Austauschalgorithmus für ein bestimmtes Programm, dessen Lauf er beabsichtigt, angewiesen ist.
Die Entscheidungen zur Ausführung eines Blockaustausches, die durch das Datenverarbeitungssystem jeweils bis zu einem vorbestimmten Punkt in der Ausführung eines Programmes gemacht werden sollten, können üblicherweise nicht so früh getroffen werden, daß danach noch ausreichend Zeit für Änderungen solcher Entscheidungen vorhanden ist. Die optimalen Blockaustauschentscheidungen können daher nicht immer im Echtzeitbetrieb gemacht werden, so wünschenswert dies auch wäre. Gemäß der Erfindung ist es möglich, zu vereinbarten Unterbrechungszeitpunkten automatisch die minimale Anzahl von Blockaustauschoperationen zu bestimmen, die bis zu diesem Zeitpunkt hätten ausgeführt werden müssen, wenn der optimale Austauschalgorithmus wirksam gewesen wäre. Durch kontinuierliche Vervollständigung dieser Information während des Ablaufes eines Programms ist es möglich, einen kumulativen Zählwert der "unnötigen Übertragungen" am Ende des Programmes zu erzeugen. Wenn die errechnete Austauscheffektivität niedrig zu sein scheint, kann bei nächster Gelegenheit, wenn das gleiche oder ein ähnliches Programm abläuft, ein anderer Austauschalgorithmus versucht werden und dieser in seiner Effektivität mit dem zuvor benutzten verglichen werden. Die kumulativen Meßoperationen werden ohne wesentliche Beeinflußung des normalen Programmablaufes im Datenverarbeitungssystem durchgeführt. Dies ermöglicht eine besondere Steuertechnik, durch welche Informationsblöcke im Arbeitsspeicher WM wiederholt aufgesucht werden können, ohne daß Unterbrechungen
Docket YO 968 098
109816/1875
- li -
in den Lese- und Schreiboperationen notwendig sind, um die Meßwerte zu vervollständigen. Solange kein Aufruf nach Informationen vorliegt, die zum betreffenden Zeitpunkt nicht im Arbeitsspeicher WM enthalten sind, werden die Meßwert-Vervollständigungsoperationen aufgeschoben, bis die nächste Anforderung nach einer Informationsentnahme aus dem externen Speicher BS auftritt, wonach die Meßwerttabellen für die Austauschdaten automatisch auf den neuesten Stand gebracht werden.
In Fig. 2 ist ein tabellarischer Vergleich dargestellt, wie zwei Austauschalgorithmen eine sehr einfache Folge von Blockanforderungen behandeln würden. Einer dieser Algorithmen ist der aktuelle Austauschalgorithmus, während der andere der optimale Austauschalgorithmus ist. Die Operationen sind unterteilt in Folgen nummerierter "Intervalle", wobei jedes Intervall beginnt, bevor eine Anforderung nach einem Informationsblock, der zum betreffenden Zeitpunkt nicht im Arbeitsspeicher WM steht, ausgeführt wird. Es wird angenommen, daß der Arbeitsspeicher WM ursprünglich leer ist und daß das System eine Anzahl von Informationsblöcken in der Folge BLl, BL2, BL3, BL4, BL5, BL2 anfordert. Zum Zwecke der einfachen Darstellung wird angenommen, daß der Arbeitsspeicher WM nur eine Kapazität von drei Blöcken aufweist.
Der benutzte aktuelle Austauschalgorithmus soll an dieser Stelle nicht im Detail erläutert werden. Für das Verständnis des Algorithmus ist die nachfolgende kurze Erläuterung seiner Grundzüge ausreichend. Wenn der Arbeitsspeicher WM nach Aufnahme der Blöcke BLl, BL2 und BL3 vollständig gefüllt ist, tritt eine Anforderung nach dem Block BL4 auf (Intervall Nummer 4 in Fig. 2). Zu diesem Zeitpunkt muß eine Entscheidung getroffen werden, welcher der drei im Speicher enthaltenen Blöcke gegen den Block BL4 ausgetauscht werden soll. In diesem Falle ist es naheliegend, den Block für den Austausch auszuwählen, der bis dahin am längsten im Arbeitsspeicher WM enthalten gewesen ist, ohne daß er von der zentralen Verarbeitungseinheit CPU benötigt wurde. Im dar-
Dockt YO 968 098 109816/187
gestellten Beispiel wäre dies Block BLl. Während des Intervalles 4 wird somit der Block BLl ersetzt durch den Block BL4. Danach wird der Block BL5 zum Zeitpunkt des Intervalles 5 angefordert, wozu eine Auswahl für den vorzunehmenden Austausch zwischen den Blöcken BL2 oder BL3 vorgenommen werden muß. Da keine andere Basis für die Wahl zwischen diesen beiden Blöcken vorhanden ist, wählt der aktuelle Austauschalgorithmus den Block BL2 für den Austausch aus, da BL3 später in den Arbeitsspeicher WM gebracht wurde. Im Intervall 5 wird somit der Block BL2 durch den Block BL5 ersetzt. Wie jedoch später deutlich werden wird, war diese Auswahl vom Standpunkt der Effektivität falsch, da bei nächster Gelegenheit, d.h. während des Intervalles 6, der Block BL2 wieder angefordert wird. Es ist daher notwendig, zu dieser Zeit den Block BL2 erneut in den Arbeitsspeicher zu bringen, obwohl er unmittelbar vorher aus diesem entfernt worden war.
Rückblickend betrachtet wäre es besser gewesen, entsprechend dem optimalen Austauschalgorithmus den Block BL3 oder BLl anstelle des Blockes BL2 während des Intervalles 5 gegen den Block BL5 auszutauschen. Dadurch wäre der Block BL2 im Arbeitsspeicher WM geblieben, wo er zum Zeitpunkt des Intervalles 6 benötigt wird. Die Zeit zum Herbeiholen dieses Blockes aus dem externen Speicher BS hätte damit eingespart werden könen. Es ergibt sich daraus, daß eine der sechs Blockübertragungen, die durch den aktuellen Austauschalgorithmus ausgeführt worden sind, sich als unnötig erwiesen hat und daß die Austauscheffektivität dieses Algorithmus für den dargestellten Abschnitt nur 83,3 % ist.
(Pz£ = ill = 83 3 %)
\ ρ 6 *
Am Beginn des Intervalles 5, als die Austauschentscheidung zu machen war, lagen keine Daten vor, aufgrund deren eine logische Entscheidung möglich gewesen wäre, daß der Block BL3 oder BLl besser für einen Austausch geeignet gewesen wären als Block BL2. Diese Information hat sich erst nachträglich ergeben, und sie hätte nur dann können vorteilhaft für die zu fällende Entscheidung benutzt werden, wenn es möglich gewesen wäre, die betreffende
Docket YO 968 098 10 9 8 16/1875
Austauschentscheidung aufzuschieben. Da es in der Praxis üblicherweise nicht möglich ist, Austauschentscheidungen aufzuschieben, müssen diese Entscheidungen unmittelbar nach Auftreten eines Blockaufrufes in Obereinstimmung mit dem jeweils benutzten aktuellen Austauschalgorithmus getroffen werden. Zu einer späteren Zeit ist man dann in der Lage, die jeweils zuletzt erfolgten Austauschoperationen abzutasten und festzustellen, ob der aktuelle Austauschalgorithmus zu einem unnötigen Austausch aufgerufen hat oder nicht.
In der vorliegenden Beschreibung sind die Bezugnahmen auf Blöcke, welche unter Steuerung des optimalen Austauschalgorithmus ausgetauscht werden, lediglich bildlich zu verstehen und nicht als tatsächlicher Blockaustausch. Der optimale Austauschalgorithmus wird empirisch aus bereits getroffenen Austauschentscheidungen aufgebaut und legt somit nachträglich fe3t, welche Blöcke während den vorausgehend ausgeführten Austauschoperationen im Arbeitsspeicher hätten zurückgehalten werden sollen. Darüber hinaus ist der optimale Austauschaigorlthmus anders als der aktuelle Austauschalgorithmus in der Lage, unter verschiedenen Bedingungen Alternativen oder Wahlmöglichkeiten festzustellen. Z.B. kann während des Intervalles 4 von Flg. 2 gemäß der optimalen Folge entweder Block BLl oder Block BL2 durch Block BL4 ersetzt werden. Ebenso kann während des Intervalles 5 der optimale Algorithmus \ durch einen Ersatz der Blöcke BL3, BLl oder BLl erfüllt werden. Der optimale Algorithmus erfordert somit, daß der Block BL2 Irgendwie im Arbeitsspeicher WM zurückgehalten wird, bis er während des Intervalles 5 erneut aufgerufen werden kann. In v/aLcher Weise dies geschieht, Ist unter dsn angecjfibenen Bedingungen nicht von Bedeuturuj. Zxic Erleichterung der Darstellung tfLrd jedoch In der folgenden Beschreibung angenommen, daß der optimale Algorithmus tatsächlich entscheidet, daß EiLn bestimmter BLock Lm Speicher ViM gegen einen anderen BLock ausgetauscht werden soLl, obgleich hierfür auch verschiedene andere BLöcke Ln Frage kommen können. Unter bestimmten Bedingungen schränkt jedoch der optimale ALgorlthmus die WahL des auszutauschenden
Docket YO 968 098 10981ß/1875
Blockes auf einen bestimmten Block ein. Dies ist der Fall, wenn der optimale Algorithmus einen "vollständigen Satz" definiert, d.h. daß eine Bedingung vorliegt, unter der es möglich ist, durch Ausführung einer bestimmten Folge von Blockaustauschoperationen den Arbeitsspeicher WM in seiner vollen Kapazität mit ausgewählten Blöcken zu füllen, die alle während des gleichen Intervalles oder innerhalb einer begrenzten Anzahl von Intervallen danach (z.B. N-I Intervallen, wobei N die Kapazität des Arbeitsspeichers ist) aufgerufen werden. Ein solcher Fall wird in einem der folgenden Abschnitte erläutert.
Sofern die bestimmte Folge, in welcher Blöcke durch die zentrale Verarbeitungseinheit während der Ausführung eines bestimmten Programmes angefordert werden, bekannt ist, kann die minimale Anzahl von Blockaustauschoperationen für dieses Programm durch Verwendung des sogenannten MIN-Algorithmus bestimmt werden, der in dem Artikel "A Study of Replacement Algorithms for a Virtual-Storage Computer" von L.A, Belady, IBM Systems Journal, Vol. 5, Nr. 2", 1966, Seiten 78-101 beschrieben wird. Eine solche Bestimmung kann dynamisch im Verlaufe des auszuführenden Programmes vorgenommen werden, wie noch beschrieben wird. Durch die Erfindung wird ein automatischer Vergleich vorgeschlagen zwischen der Zahl ^ von Austauschentscheidungen, die durch einen angenommenen optimalen Algorithmus, der vom vorerwähnten MIN-Algorithmus abgeleitet 1st, gemacht werden und die auf einer intermittierend vervollständigten Blockaufrufinformation beruht, mit der Anzahl von Austauschentscheidungen, die zu einem früheren Zeitpunkt getroffen wurden, als die betreffenden Blockaustauschoperationen tatsächlich auszuführen waren. Dieser automatische Vergleich wird durch eine neuartige Erzeugung signifikanter Blockaufrufinformationen während der Intervalle zwischen den Austauschoperationen erreicht. Wie noch zu Beschreiben ist, werden Kennwerte erzeugt und gespeichert (Aufrufbits R1), um die Blöcke im schnellen Arbeitsspeicher WM zu Identifizieren, die durch die zentrale Verarbeitungseinheit während jenes Teiles eines Intervalles aufgerufen werden, in denen kein neuer Block vom externen Speicher BS
Docket YO 968 098 10 9 8 16/1875
2047082
für die zentrale Verarbeitungseinheit CPU zu holen ist. Bei ' jedem Zugriff zu einem Block im externen Speicher BS wird eine Programmunterbrechung bewirkt, innerhalb der als erstes eine sehr schnelle Aufdatierung der Aufrufdaten erfolgt« Hierzu werden die gespeicherten Aufrufbits R1 in Tabellen E und C abgetastet, um Daten zu erhalten, durch die bestimmt werden kann, welche Blöcke im schnellen Arbeitsspeicher WM vorhanden sein sollten, wenn die nächste Blockaustauschoperation erfolgt, wobei auch die Hummer des Blockes berücksichtigt wird, der gerade vom externen Speicher angefordert wird. Wenn diese gerade aufgerufene Blocknummer mit der Nummer eines Blockes übereinstimmt, der durch den optimalen Austauschalgorithmus nach, einer vorausgehenden Austauschoperation weiterhin im Arbeitsspeicher belassen worden wäre, würde der aktuelle Austauschalgorithmus damit belastet» eine unnötige übertragung veranlaßt zu haben CFxg. 2}.
Die Fig. 3 zeigt die Art, in welcher bestimmte aussagefähige Daten innerhalb des vorliegenden Effektivitätsmeßsystems gesammelt werden können, im diejenigen Fälle zu bestimmen, in denen die optimalen Austauschentscheidungen, wenn sie ausgeführt worden wären, von den tatsächlich ausgeführten Austauschentscheidungen abweichen. Die Seihenfolge, in welcher die Informationsblöcke im dargestellten Beispiel aufgerufen werden sollen, ist folgende: BLl, BL2, BL3# BL4, BL5, BL2, BL4. Diese Reihenfolge unterscheidet sich von derjenigen des Beispiels von Fig. 2 nur dadurch, daß am Ende der Reihenfolge von Fig. 3 ein erneuter Aufruf des Blockes BI»4 erfolgt.
Die aktuelle Operationsfolge im linken Teil der Fig. 3 gibt die Blockübertragungsoperationen und Blockaufrufoperationen so an, wie sie tatsächlich ausgeführt werden. Die Bezeichnung "Eingabe BL4, Ersetzen BLl" bedeutet, daß der Block BL4 in den Arbeitsspeicher WM eingegeben wird auf die Adresse, auf der vorher der Block BLl enthalten war. "Aufruf BL4" bedeutet, daß der Block BL4, einige Zeit nachdem er in den Arbeitsspeicher WM eingegeben worden ist, durch die zentrale Verarbeitungseinheit Docket YO 968 098 .10 9 816/1875
aufgerufen wird, so daß die in BL4 gespeicherte Information aus dem Speicher WM ausgelesen und für eine Datenverarbeitungsoperation verwendet werden kann oder BL4 die Resultatinformation einer Datenverarbeitungsoperation von der zentralen Verarbeitungseinheit aufnehmen kann« Die optimale Operationsfolge im rechten Teil,der Fig. 3 gibt verschiedene Blockübertragungen und Aufrufoperationen an, die unter Steuerung des optimalen Austauschalgorithmus ausgeführt werden könnten, um die gleiche Blockaufruffolge in weniger Intervallen, d.h. mit weniger Blockeingaben zu realisieren. Die Spalte "U" bezeichnet den Umfang, in welchem die Anzahl der Blockeingaben des aktuellen Austauschalgorithmus von der Anzahl der Blockeingaben abweicht, die gemäß dem optimalen Austauschalgorithmus notwendig wären.
Eines der Probleme„ zu dessen Lösung die vorliegende Erfindung beitragen soll, besteht darin, kumulativ und mit einer möglichst geringen Verzögerung zu bestimmen, ob jede der Austauschentscheidungen, die vom System tatsächlich getroffen wurden, tatsächlich die beste Entscheidung ist, die unter den vorliegenden umständen getroffen werden konnte. Diese Bestimmung wird ermöglicht durch progressive Bildung bestimmter Variablen P, A, E, C und B, die als Kennzeichen für die Darstellung von Vergleichsangaben über die beiden Operationsfolgen dienen. Wie im Falle der Fig. 2 wird jede dieser Folgen als eine Serie von Intervallen aufgefaßt, wobei jedes dieser Intervalle jeweils beginnt, wenn die zentrale 'Verarbeitungseinheit CPU einen Informationsblock anfordert, der zu dem betreffenden Zeitpunkt nicht im Arbeitsspeicher WM enthalten ist. Dementsprechend dauert jeder Intervall stets so lange, bis die zentrale Verarbeitungseinheit den nächsten nicht im Arbeitsspeicher WM enthaltenen Block anfordert. Während eines solchen Intervalles kann die zentrale Verarbeitungseinheit einen oder mehrere der im Arbeitsspeicher WM enthaltenen Blöcke einmal oder mehrmals aufrufen. Hieraus ergibt sich, daß die Intervalle eine variable Dauer haben, die davon abhängt, wie viele Blockaufrufoperationen innerhalb eines jeden Intervalles vorgenommen werden. Die Leistungsfähigkeit des aktuellen Austauschalgorithmus wird mit der des optimalen Austauschalgorithmus dadurch verglichen,
Docket YO 968 098 109816/1875
daß die Differenz zwischen den entsprechenden Intervall-Nummern in den zwei Sequenzen festgehalten wird. Diese Differenz ist in der Regel die Zahl der unnötigen Übertragungen {U).
Es soll nun im einzelnen erläutert werden, wie festgestellt wird, daß ein bestimmtes "aktuelles" Intervall {z.B. Intervall 6 in Fig. 3) ein "unnötiges" Intervall ist im Vergleich mit der Operationsfolge des optimalen Austauschalgorithmus. Damit im Zusammenhang steht die Frage, wie eine solche Bestimmung ohne übermäßige Inanspruchnahme von Maschinenoperationen ausführbar ist»
In der Operationstabelle von Fig. 3 werden die varaiblen Werte, f die durch die erwähnten Symbole P, A, E, C, B und U bezeichnet sind, beim Fortschreiten der Operationen gebildet. Diese Variablen sind wie folgt definiertj
P dies ist die Anzahl von Entnahmen von Informationsblöcken aus dem externen Speicher BS, die als Folge von Informationsblock-Anforderungen der zentralen Verarbeitungseinheit ausgeführt werden. P ist zugleich die Nummer eines jeden Intervalles in der aktuellen Operationsfolge.
A dies ist die Nummer eines jeden Intervalles in der optimalen Operationsfolge und zugleich die Anzahl der Informationsblock-Entnahmen aus dem externen Speicher BS, wenn die Operationsfolge nach dem optimalen Austauschalgorithmus ausgeführt würde,
E dies 1st ein inkremantierbarer Indexwert, der jeder adressierbaren Blocknummer zugeordnet wird und der allgemein der Nummer des Intervalles entspricht, in welchem der betreffende Block zum letzten Mal aufgerufen worden wäre, wenn die Operationsfolge gemäß dem optimalen Austauschalgorithmus ausgeführt würde.
C dies ist ein dekrementierbarer Zählwert, der jedem der
Docket YO 968 098 10 9816/1875
- 18 -
Intervalle in der optimalen Operationsfolge beim ersten Aufruf eines Blockes in diesem Intervall zugeordnet wird. Anfänglich ist jeder C-Wert N-I, worin N die 2ahl der gleichzeitig im Arbeitsspeicher WM speicherbaren Informationsblöcke ist. Danach wird der Wert C in jedem "optimalen" Intervall für jeden separaten Block, der im Arbeitsspeicher WM zu der diesem Intervall entsprechenden Zeit aufgerufen wird, um eins verringert. Wenn ein Wert C von einem höheren Wert nach Null geht, so ist dies eine Anzeige dafür, daß alle N Blöcke im Arbeitsspeicher aufgerufen worden sind innerhalb einer Zeit, die das betreffende Intervall und nicht mehr als N-I aufeinanderfolgender Intervalle der optimalen Folge umfaßt, In jedem Falle, wenn C Null wird, ist ein "vollständiger Satz" von Blockaufrufen für das betreffende Intervall definiert, Der Wert C eines Intervalles wird nur dann bedeutsam, wenn er zu Null reduziert worden ist. Ab diesem Zeitpunkt verhindert er jede weitere Berücksichtigung des betreffenden Intervalles durch das Effektivitätsmeßsystem. Das System beginnt danach im folgenden Intervall nach dem nächsten "vollständigen Satz" Ausschau zu halten. In der nachstehenden Beschreibung wird die Bedeutung des Ausdruckes "vollständiger Satz" noch deutlicher zum Ausdruck kommen.
B dies ist ein Zählwert, der ausgehend vom Startwert 1, jeweils die Nummer des letzten Intervalles anzeigt, in welchem der optimale Austauschalgorithmus einen vollständigen Satz von Blockaufrufen definiert haben würde. Wie noch erläutert werden wird, ist die Beziehung zwischen den Werten E und B ein bedeutender Faktor bei einigen der logischen Entscheidungen, die vom dargestellten Meßsystem zu fällen sind,
U dies ist der Wert zur Zählung der unnötigen Übertragungen. Er ist üblicherweise gleich der Differenz zwischen der Zahl (P) der Blockaufrufe im externen Speicher BS, die vom aktuellen Austauschalgorithmus veranlaßt wurden, und der Anzahl (A), von Blockaufrufen, die vom optimalen Aus-
Docket YO 968 098 109816/1875
tauschalgorithmus veranlaßt worden wären. In einigen Fällen wird jedoch diese Beziehung noch durch einen Unbestimmtheitsfaktor Q beeinflußt, dessen Bedeutung in einem späteren Abschnitt erläutert wird.
Wie aus Fig« 3 zu ersehen ist, sind die unter der Steuerung des. aktuellen Austauschalgorithmus während den ersten vier Intervallen ausgeführten Operationen die gleichen, die auch vom optimalen Austauschalgorithmus angegeben worden wären. Es sei in diesem Zusammenhang daran erinnertf daß die Kapazität des Arbeitsspeichers ΐΜ mit drei Blöcken angenommen wurde« Während des Intervalles 5f wenn die Wahl zu treffen ist, ob entweder der Block BL2 oder der Block BL3 gegen den Block BL5 auszutauschen istr entscheidet der aktuelle Austauschalgorithmus einen Ersatz des Blockes BL2, da BL3 vor einer kürzeren Zeit aufgerufen worden ist als BL3. Während des unmittelbar,daraufffolgenden Intervalles 6 stellt jedoch der aktuelle Austauschalgorithmus fest, daß eine Rückübertragung des Blockes BL2 in den Arbeitsspeicher WM erforderlich ist, wo dieser Block den Block BL3 ersetzt.
Der optimale Austauschalgorithmus f für den nicht die Notwendigkeit besteht, eine Austauschentscheidung zur gleichen Zeit wie der aktuelle Austauschalgorithmus vorzunehmen, wartet die Anforderung für den nächsten auf Block BL5 folgenden Block ab, bevor er entscheidet, welcher der zu dieser Zeit im Arbeitsspeicher stehenden Blöcke für einen Austausch in Frage kommt« Der optimale Algorithmus kann daher feststellen, daß der Block BL2 und nicht der Block BL3 im Arbeitsspeicher während des Intervalles 5 zurückzuhalten ist, in der Gewißheit, daß der Block BL2 unmittelbar nach dem Block BL5 erneut angefordert wird. Man sollte sich jedoch vergegenwärtigen, daß der optimale Austauschalgoriihnius, der nachträglich empirisch entwickelt wurde, in Wirklichkeit; keinen Blockaustausch bewirken kann. Die Bezeichnung "Ersetzen BL3" im Intervall 5 der optimalen Operationsfolge von Fig. 3 bedeutet lediglich, daß diese Blockaustauschoperation während des Intervalles 5 stattgefunden haben würde, wenn das Datenver-
Docket YO 968 098 10 9 816/1875
arbeitungssystem in der Lage gewesen wäre, die vorerwähnte Block- ' austauschoperation solange hinauszuschieben, bis es feststellen konnte, daß BI»2 der nach Auf ruf des Blockes BL5 als nächster angeforderte Block seift würde. In der Praxis ist eine solche Verzögerung der BlockaustauschentscheidUng jedoch oft., nicht möglich, so daß die Entscheidung nach irgendeiner vom Programmierer festzulegenden Regel gefällt werden muß.
Entsprechend dem. vorausgehend Erläuterten ergibt sich, daß der aktuelle Austausehalgorithmus zum Zeitpunkt des Intervalles 6 weniger als die optimale Effektivität erreicht, da er einen sechsten Blockaufruf veranlassen muß, der bei Befolgung des optimalen Austauschalgorithmus nicht notwendig gewesen wäre. Der aktuelle Austauschalgorithmus erhält somit den ü-Zählwert 1 angelastet.
Als letzten Schritt der Operationsfolge von Fig. 3 ruft das Datenverarbeitungssystem den Block BL4 auf, der in beiden Operationsfolgen bereits im Arbeitsspeicher WM enthalten ist. In beiden Fällen erfolgt daher ein Aufruf von BL4 im Arbeitsspeicher, ohne daß eine Blockaustauschoperation eingeleitet werden muß. Man kann dennoch einen Unterschied insofern feststellen, als während des sechsten Intervalles der aktuellen Operationsfolge nur zwei der drei gleichzeitig im Arbeitsspeicher enthaltenen Blöcke aufgerufen werden (BL2 und BL4), während in der optimalen Operationsfolge alle drei der zu dieser Zeit im Arbeltsspeicher enthaltenen Blöcke (B12, BL4 und BL5) aufgerufen werden. Man kann deshalb sagen, daß ein "vollständiger Satz" von Blockaufrufen für das Intervall 5 der optimalen Operationsfolge"definiert worden ist. Dieser Umstand wird bedeutsam, wenn die Aufruffolge mit zusätzlichen Blockanforderungen fortgesetzt werden sollte, da das Auftreten eines jeden neuen "vollständigen Satzes" einen Startpunkt im Verfahren zur Bestimmung des optimalen Blockaustausches signalisiert. Die optimierte Bestimmung "vergißt" praktisch Blockanforderungen, die auftreten können, bevor der letzte "vollständige Satz" von Blocks gebildet worden war.
Docket YO 968 098 109816/1875
Im folgenden soll betrachtet werden, wie die Einträge in den Spalten P, A, E, C und B von Fig. 3 nacheinander-entstehen. Da ■ P einfach der Zählwert für die tatsächlich vom System ausgeführten Blockaustauschoperationen ist, isb er identisch mit der aktuellen Intervallnummer. Ebenso ist A der Zählwert für die optimalen Blockaustauschoperationen und damit identisch mit der Nummer des optimalen Intervalles. E ist ein inkrementierbarer Wert, der jedem Block zugeordnet ist in Übereinstimmung mit der Nummer des Intervalles, in welchem er zuletzt aufgerufen wurde innerhalb des optimalen Austauschalgorithmus. Im Falle des Blockes BL2 ist beispielsweise der ursprünglich diesem Block zugeordnete Wert E gleich 2. Dies ist die Nummer des Intervalles, " in welchem BL2 erstmals aufgerufen wurde. Danach wird BL2 erneut aufgerufen während des optimalen Intervalles 5, das dem aktuellen Intervall 6 entspricht. Der Wert E des Blockes BL2 wird dadurch auf 5 erhöht. Ebenso wird beim zweiten Aufruf des Blockes BL4 während des optimalen Intervalles 5 (aktuelles Intervall 6) dessen Wert E von 4 auf 5 erhöht. Der Wert E des Blockes BL5 ist bereits 5, so daß nun ein "vollständiger Satz" von Blöcken vorliegt, die alle Ε-Werte von 5 im optimalen Intervall 5 aufweisen.
Es soll an dieser Stelle kurz auf die Bedeutung des Begriffes "vollständiger Satz" eingegangen werden. Es ist üblicherweise | die Funktion des optimalen Austauschalgorithmus, auf die gemäß dem aktuellen Arbeitealgorithmus ausgeführten Blockaustauschoperationen zurückzuschauen und zu bestimmen, ob Irgendwelche der ausgetauschten Blöcke im Arbeitsspeicher hätten zurückgehalten warden sollen, um sie für einen späteren Aufruf verfügbar zu halten, Es ist erkennbar, daß dieser Prozeß nur bis zu einer bestimmten praktischen Grenze ausführbar ist. Darüber hinaus wird die Suche ergebnislos. Es wird praktisch kein Nutzen erhalten, wenn das System veranlaßt wird, tiefer in die Vergangenheit der ausgeführten Blockaustauschoperationen einzudringen, um zu sehen, ob eine vollkommenere Au3wahL von Blöcken hätte im Arbeltsspeicher zusammengestellt werden können. Durch die Identifizierung eines "vollständigen Satzes" kann man eine Bedingung bilden, Docket YO 968 098 10 9 816/1875
bei der ein zu einem früheren Zeitpunkt aufgerufener Block nicht ein Glied dieses Satzes ist. Wenn ein solcher Block durch die zentrale Verarbeitungseinheit erneut aufgerufen wird, wird er behandelt, als wäre ein neuer Block, der erstmals aufgerufen wird. Hierdurch ist es für das System unnötig, weitere Untersuchungen anzustellen, was passiert wäre, wenn dieser Block zu einem früheren Zeitpunkt im Arbeitsspeicher aufbewahrt worden wäre, anstatt ihn durch einen anderen Block zu ersetzen. Hierdurch wird der Umfang der auszuführenden Suchoperationen erheblich reduziert, und die Ausführung der optimalen Austauschberechnungen in den hierfür zur Verfügung stehenden begrenzten Zeiten wird erleichtert. Die Formierung eines jeden "vollständigen Satzes" signalisiert somit sinngemäß einen neuen Start im Verfahren der Bestimmung der optimalen Austauschoperationen für künftige Blockanforderungen.
Der ursprünglich einem jeden Intervall in der optimalen Folge vom erstmaligen Aufruf eines Blockes in diesem Intervall zugewiesene Wert C ist zwei, d.h. N-I bzw. jeweils 1 weniger als die Speicherblock-Kapazität des Arbeitsspeichers, nämlich 3. In Fig. 3 wird somit ein Anfangswert C von 2 dem Intervall 5 zu der Zeit zugeordnet, wenn der Block BL5 in diesem Intervall aufgerufen wird. Wenn darauffolgend der Block BL2 aufgerufen wird, erfolgt eine Dekrementierung des C-Wertes des Intervalles 5 um 1. Gleichzeitig werden die C-Werte aller vorausgehenden Intervalle mit Ausnahme des Intervalles 2 von zwei zu eins dekrementiert, Die Dekrementierung der C-Werte der Intervalle 3 und 4 auf 1 ist zu dieser Zeit ohne Bedeutung. Sie gibt lediglich an, daß es hätte möglich sein können, unter bestimmten Bedingungen, die jedoch nicht eingetreten sind, einen "vollständigen Satz" zu definieren, der den Block BL2 entweder im Intervall 3 oder im Intervall 4 einschließt. Dagegen 1st die Dekrementierung des Wertes C von 2 zu 1 in demjenigen Teil des Intervalles 5, wo der Block BL2 aufgerufen wird, von erheblicher Bedeutung, da ein Aufruf des Blockes BL4 während eines folgenden Teiles des gleichen Intervalles Lh der optimalen Operationsfolge den Wert C des Intervalles 5 zu O reduziert, womit
Docket YO 968 098 109816/18 75
für das Intervall 5 "vollständiger Satz" definiert ist. Mit anderen Worten, wenn die optimalen Blockaustauschentscheidungen ausgeführt worden wären, würde man im Intervall 5 einen Zustand erreicht haben, in welchem N der angeforderten Blöcke im Arbeitsspeicher aufgerufen worden wären, ohne daß einer dieser Blöcke für diesen Aufruf in den Arbeitsspeicher WM gebracht werden mußte. Dieser Zustand wird als Zustand optimaler Effektivität betrachtet.
Die Bestimmungen, ob optimale Austauschoperationen vorliegen,
werden von einem "vollständiger Satz"-Intervall zum nächsten >
"vollständiger Satz"-Intervall fortschreitend gemacht, wobei das Intervall 1 als das erste "vollständiger Satz"-Intervall angenommen wird. In jedem neuen Intervall, das dem Intervall 5 folgt, wird der Wert C des betreffenden Intervalles anfänglich auf 2 gesetzt, und das System hält nach Bedingungen Ausschau, unter denen einer dieser C-Werte zu 0 dekrementiert werden kann, um ein neues "vollständiger Satz"-Intervall zu definieren.
Zu jeder Zeit, wenn ein neuer "vollständiger Satz" definiert wird, wird der Wert von B gleich der Nummer des optimalen Intervalles gesetzt, in welchem ein solcher Satz festgestellt wurde. B wird damit ein Bezugspunkt bzw. ein Markierungswert, mit dem die Werte E der verschiedenen angeforderten Blocks für
verschiedene Zwecke verglichen werden, wie im Detail noch {
erläutert wird.
Wenn jeweils ein vollständiger Satz definiert worden ist, wie während des Intervalles 5 der optimalen Operationsfolge von Fig. 3, kann dies eine schnellere Erhöhung des Wertes P (aktuelle Intervallnummer) als des Wertes A (optimale Interwallnummer) bewirken. Im vorliegenden Beispiel wird daher die aktuelle Intervallnummer P von 5 auf 6 erhöht, während die optimale Intervallnummer auf 5 verbleibt. Wenn jeweils der Wert P gegenüber dem Wert A erhöht wird, erfolgt eine Inkrementierung des Zählwertes ü für die unnötigen Übertragungen, da ü üblicherweise die Differenz zwischen P und A ist. Im vorliegenden Falle werden die Intervalle 5 und 6 der aktuellen Folge als "zeitgleich" mit Docket YO 968 098 10 9816/1875
2047Q62
dem Intervall 5 der optimalen Folge betrachtet. Es ist möglich, daß verschiedene aktuelle Intervalle mit einem einzelnen optimalen Intervall "zeitgleich" sind, in Abhängigkeit von den jeweiligen Bedingungen, welche zu dieser Zeit vorliegen. Im Beispiel, wo die Kapazität N des Arbeitsspeichers WM mit drei Blöcken angenommen worden war, ist es möglich, daß eine Zeitgleichheit von einem bis zu drei Intervallen der aktuellen Folge mit einem einzelnen Intervall der optimalen Folge besteht. Ein Fall, wo drei aktuelle Intervalle mit einem optimalen Intervall zeitgleich sind, wird in Verbindung mit dem Beispiel von Fig, 5 ^erläutert.
Die Fign. 4A und 4B zeigen ein umfangreicheres Beispiel als die der Fign. 2 und 3. In diesem Beispiel wird von der nachstehenden Blockaufruffolge ausgegangen, wobei die Arbeitsspeicherkapazität N nach wie vor drei Blöcke sein soll:
BLl
BL2
BL3
BL4
BL5
BL2
BL4 (BL4 ändern) k BLl
BL6 . . BLl
BL2
BL4
Der benutzte aktuelle Austauschalgorithinus bezeichnet im Arbeitsspeicher für jeden Block, dessen Inhalt geändert wurde, einen Status, der sich vom Status aller nichtgeänderten Blöcke, ■die zu dieser Zeit im Arbeitsspeicher enthalten sind, unterscheidet. Wenn das System eine Wahl zu treffen hat, zwischen dem Austausch eines Blockes, der geändert wurde, und einem solchen, der nicht verändert wurde, kann es den nicht geänderten Block
Docket YO 968 098 10 9 8 16/1875
für den Austausch auswählen, aufgrund dessen, daß ein Duplikat des nicht veränderten Blockes noch im externen Speicher verfüg- ' bar ist, so daß es nicht nötig ist, einen solchen Block in den externen Speicher zurückzuübertragen, wenn sein Speicherraum im Arbeitsspeicher anderweitig benötigt wird. Bei einem Block, der während seines Aufenthaltes im Arbeitsspeicher verändert wurde, ist die in ihm enthaltene Information im System einmalig, und wenn ein solcher Block im Arbeitsspeicher ersetzt werden soll, muß sein Inhalt zuvor unter der entsprechenden Adresse im externen Speicher abgespeichert werden, wobei üblicherweise der ursprüngliche Inhalt dieses Blockes überschrieben wird. Da die Operation des Einschreibens eines Blockes in den langsamen I externen Speicher viel mehr Zeit verbraucht als das einfache überschreiben eines Blockes im schnellen Arbeitsspeicher, wird üblicherweise eine Entscheidung, welcher Block bei einer Austauschoperatiom im Arbeitsspeicher zurückgehalten werden soll, dem geänderten Block der Vorzug gegeben. Im dargestellten Beispiel wurde angenommen, daß der Block BL4 einen solchen bevorzugten Status aufweist.
Das vorausgehend erläuterte bevorzugte Zurückbehalten geänderter Blöcke im Arbeitsspeicher kann dazu führen, daß solche Blöcke weit über die Zeit im Arbeitsspeicher verbleiben, in der sie sonst längst ausgetauscht worden wären. Es ist dadurch möglich, (j daß ein solcher Block sich bereits im Arbeitsspeicher befindet, wenn er zum nächsten Mal aufgerufen wird, trotzdem der optimale Austauschalgorithmus, der keinen speziellen Status geänderter Blöcke berücksichtigt, einen Austausch dieses Blockes innerhalb der Zeit zwischen zwei Aufrufen dieses Blockes veranlaßt hätte. Hierdurch wird eine besondere Situation hervorgerufen, in welcher der aktuelle Austauschalgorithmus in einer bestimmten Phase einer Blockaufruffolge effektiver arbeitet als der optimale Austauschalgorithmus. Dies soll im folgenden näher betrachtet werden.
Bis zu der Zeit, wo eine Änderung des Blockes BL4 (Fig. 4Ά) in der betrachteten Operationsfolge auftritt, verhält sich das
Docket YO 968 098 109816/1875
■ - 26 -
System in der gleichen Weise, wie es anhand der Fig. 3 erläutert wurde. Mit der Änderung des Blockes BL4 durch die zentrale Verarbeitungseinheit wird ein entsprechendes Änderungsbit im assoziativen Speicher AM (Fig. 1) auf 1 gesetzt. Während des folgenden Intervalles (7 in der aktuellen Folge und 6 in der optimalen Folge in Fig. 4B) wird der Block BLl durch die Verarbeitungseinheit angefordert und im Austausch mit dem Block BL5 in den Arbeitsspeicher WM gebracht. Der Block BL5 wurde für den Austausch vorgesehen, weil er zu diesem Zeitpunkt der älteste im Arbeitsspeicher enthaltene Block ist. Im nun folgenden Intervall (8 in der aktuellen Folge und 7 in der optimalen Folge) wird
" der Block BL6 von der Verarbeitungseinheit angefordert und in den Arbeitsspeicher eingegeben. Zu diesem Zeitpunkt muß eine kritische Auswahl getroffen werden zwischen dem Block BL2 und dem Block BL4r damit ein Block für den Austausch mit dem hereinzunehmenden Block BL6 gefunden werden kann. Üblicherweise, wenn der Block BL4 unverändert geblieben wäre, würde er es sein, der für die Austauschoperation ausgewählt worden wäre, da er der älteste im Arbeitsspeicher befindliche Block ist. Der im vorliegenden Beispiel benutzte aktuelle Austauschalgorithmus übergeht jedoch den geänderten Block BL4 beim Austausch und wählt statt dessen den Block BL2 für den Austausch gegen den Block BL6 aus. Der optimale Algorithmus würde dagegen den Block BL4 als
J) austauschenden Block gewählt haben, und die Blöcke BLl und BL2 wären im Arbeitsspeicher zurückbehalten worden aufgrund der Tatsache, daß dem optimalen Austauschalgorithmus bekannt ist, daß BLl und BL2 unmittelbar nach BL6 aufgerufen werden.
Im Intervall 7 der optimalen Folge ist der Schluß erkennbar, nach dem der optimale Austauschalgorithmus den Block BL4 ersetzt haben würde, mit dem Ergebnis, daß der Block BL2 im Intervall 7 der optimalen Folge noch im Arbeitsspeicher WM enthalten ist. Wenn daher BL2 durch die zentrale Verarbeitungseinheit aufgerufen wird, würde es gemäß dem optimalen Algorithmus nicht notwendig sein, ein neues Intervall zu beginnen (Blockaustauschoperation) , um den Block BL2 im Arbeitsspeicher ver-
Docket YO 968 098 109816/187 5
fügbar zu haben. Der Wert A bleibt somit unverändert, wenn BL2 von der zentralen Verarbeitungseinheit angefordert wird. Der aktuelle Austauschalgorithmus halt es jedoch für notwendig, nun ein neues Intervall, nämlich das Intervall 9, zu beginnen, wenn BL2 angefordert wird, um den Block BL2 in den Arbeitsspeicher zu bringen. Demzufolge wird der Wert P auf 9 inkrementiert, währ rend A auf 7 bleibt. Außerdem wird der U-Zählwert inkrementiert . auf 2. Ferner wird ein neuer vollständiger Satz von Blockaufrufen (BL6, BLl, BL2) im optimalen Intervall 7 definiert, und der Wert von B wird dementsprechend von 5 auf 7 erhöht.
Das vorliegende Meßsystem, das einen optimalen Austauschalgo- I
rithmus benutzt, der dem verwendeten aktuellen Algorithmus sehr ähnlich aber nicht notwendigerweise mit diesem identisch ist, berücksichtigt den Umstand, daß es einem Block, wie beispielsweise BL4, der ein Glied des vorausgehenden vollständigen Satzes war (Intervall 5) gestattet wird, weiterhin im Arbeitsspeicher zu verbleiben, wo dieser Block leicht am Ende des Intervalles 9 aufgerufen werden kann, obgleich er nicht ein Glied des letzten vollständigen Satzes ist, der vom optimalen Algorithmus während dessen Intervall 7 definiert wurde (Fig. 4B). Die Verarbeitungseinheit findet diesen Block, sofern sie ihn zu dieser Zeit anfordert, bereits im Arbeitsspeicher, obwohl er nach der Logik des optimalen Algorithmus nicht hier sein sollte. Der aktuelle |
Algorithmus ist in diesem Falle effektiver als der optimale Algorithmus. Das Effektivitätsmeßsystem nimmt dies wahr durch Dekrementierung des ü-Zählwertes und Inkrementierung des A-Zählwertes, um eine echte Messung der Austauscheffektivität zu erhalten. Diese Maßnahmen sind im letzten Teil des Intervalles von Fig. 9 dargestellt. Nach Feststellung, daß ein Blockaustausch für den angeforderten Block BL4 nicht notwendig ist, dekrementiert die Verarbeitungseinheit den U-Zählstand von 2 zu 1 und inkrementiert den A-Zählstand von 7 zu 8, Hierdurch wird vom Meßsystem gewürdigt, daß der aktuelle Austauschalgorithmus einen rjocktiustausrh, der vom optimalen Austauschalgorithmus als not-: VHndig eracliiet wurde, um den betreffenden Punkt im Programm zu (irreiehrn, vonnieden hat.
BAD ORIGiNAL YO 9fih 098 1 Q 9 8 1 6 / 1 H 7 5
Um eine solche Situation zu erkennen, besitzt das Meßsystem einen Indikator, der jeweils dann eingestellt wird, wenn der s Wert E eines im Arbeitsspeicher enthaltenen Blockes auf einem Wert verbleibt, der wenigstens gleich dem vorausgehenden Wert von B, aber kleiner als der neue Wert von B ist. Im vorliegenden Falle ist der Wert E des Blockes BL4 auf 5 verblieben, !während der Wert B von 5 auf 7 anstieg. Diese Bedingung weist darauf hin, daß der Block BL4 seit einer Zeit im Arbeitsspeicher steht, die vor der Bildung des laufenden vollständigen Satzes zurückliegt. Hieraus ergibt sich, daß BL4 nicht zum externen Speicher übertragen worden ist, um ihn für einen weiteren Aufruf im Arbeitsspeicher verfügbar zu halten, trotzdem dieser Satz nicht ein Glied des laufenden Vollständigen Satzes (BL6, BLl, BL2) ist, der durch den optimalen Austauschalgorithmus definiert ist. Der vorerwähnte Indikator ist hierin als L-Bit bezeichnet. Jeder Wortspeicherbereich im assoziativen Speicher AM weist ein derartiges Bit auf. Die Einstellung des L-Bits auf 1 hat zur Folge, daß das System den ü-Zählwert dekrementiert, wenn 'der betreffende Block durch die Verarbeitungseinheit aufgerufen wird, bevor dieser Block den Arbeitsspeicher verläßt. Wenn daher das L-Bit des Blockes BL4 während des Intervalles 9 auf 1 gesetzt wird (Fig. 4B),so wird dadurch das System veranlaßt, den U-Zählstand in dem Fall zu dekrementieren, daß der Block BL4 aufgerufen wird, während er noch im Arbeitsspeicher steht.
Im Intervall 7 der optimalen Folge von Fig. 4B ist ersichtlich, daß ein vollständiger Satz von Blöcken BL6, BLl und BL2 gleichzeitig im Arbeitsspeicher WM enthalten ist. Tatsächlich existiert jedoch ein solcher vollständiger Satz zu keiner Zeit. Während dem zeitgleichen Intervall 8 der aktuellen Operationsfolge ist der Arbeitsspeicher von den Blöcken BL6,, BIiI und BL4 besetzt, mnä während dem zeitgleichen Intervall 9 Ist er besetzt durch <$ie !locke BL2, BLl und BL4., Ber op*tfma*3?e ÄlgoritBumis ignoriertdie Anwesentheit des Blockes' BL4, da dieser Block, im Ärbeitssße'icher "logisch" nicht vorhanden ist. Die Verwendläng des L-Bits gestattet der Logik des optimalen Austauschalgorithmus mit der
;Docket YO 968 098 1 0 98 16/ 1 87 5 ■'" ," ., ;
realen Situation der Fälle, in denen Diskrepanzen auftreten, in Einklang zu kommen.
Das Beispiel von Fig. 5 zeigt ein zusätzliches Merkmal des optimalen Austauschalgorithmus, welches darin besteht, daß ein vollständiger Satz für ein bestimmtes Intervall in der optimalen Operationsfolge definiert werden kann, obgleich nicht alle Blocks dieses vollständigen Satzes im gleichen Intervall aufgerufen werden. Die Arbeitsspeicherkapazität N wird wiederum mit drei Blöcken angenommen. Die Blöcke werden in der folgenden Reihenfolge aufgerufen: λ
BLl
BL2
BL3
BL4
BL5
BL2
BL3
BL6
BLl
BL2
BL7
BL4
BL6 *
Während des Intervalles 7 der optimalen Operationsfolge, das den zeitgleichen Intervallen 9 und 10 der aktuellen Operationsfolge entspricht, scheint ein vollständiger Satz von Blöcken BL6, BLl und BL2 zu existieren. Dieser Umstand kommt jedoch nicht zum Tragen bis zum Intervall 9 der optimalen Folge, wenn der Block BL6 erneut aufgerufen wird. Es ist hierbei zu beachten, daß der optimale Austauschalgorithmus während des Intervalles einen Satz von Blöcken BL6, BLl und BL2 zusammengestellt haben würde, die alle aufgerufen worden wären, bevor sie den Arbeitsspeicher während der Zeit der Intervalle 7 bis 9 der optimalen Folge, d.h. während einer Periode von N optimalen Intervallen, beginnend mit dem Intervall 7, verlassen haben. Dieser Umstand Docket YO 968 098 10 9 816/1875
wird durch die C-Tafel wahrgenommen. Der C-Wert des Intervalles 7 wird zu O dekrementiert zu einer Zeit, wenn der Block ρχ,β durch die zentrale Verarbeitungseinheit am Beginn des Intervalles der Folge, welches mit dem Intervall 9 der optimalen Folge zeitgleich ist, angefordert wird. Insofern es sich um den C-Wert des Intervalles 7 handelt, der zu O reduziert wird, erfolgt eine Rücksetzung des B-Zählwertes auf 7, obgleich eine solche Maßnahme während des Intervalles 9 der optimalen Folge (N-I Intervalle später) nicht auftritt. Der B-Wert 7 wird nun der neue Bezugspunkt für einen vollständigen Satz, in Bezug auf welchen die E-Indexwerte der angeforderten Blocks verglichen und/oder aufdatiert werden.
Detaillierte Beschreibung des Ausführungsbeispiels Das in den Fign. 6 und folgende dargestellte Ausführungsbeispiel erläutert die Erfindung anhand der Effektivitätsmessung eines bestimmten Blockaustauschalgorithmus. Die Prinzipien der Erfindung sind jedoch nicht auf die Effektivitätsmessung dieses einen Algorithmus beschränkt.
Die Fig. 6 gibt in einer allgemeinen Blockdarstellung eine Übersicht über das zu erläuternde System. In Fig. 6 und in den folgenden Figuren tragen diejenigen Elemente, die der Einrichtung zur Ausführung des verwendeten aktuellen Austauschalgorithmus gehören und die nicht Gegenstand vorliegender Erfindung sind, den Anfangsbuchstaben "T" (z.B. TO, T5, T6). Diejenigen Teile des Systems, die darüber hinaus ausschließlich zur Ausführung des erfindungsgemäßen Effektivitäts-Messverfahrens dienen, sind durch die Anfangsbuchstaben "ME" bezeichnet (z.B. MEl, ME8, ME66). Die Effektivitätsmessung erfolgt in einer Weise, daß der aktuelle Austauschalgorithmus frei funktionieren kaim und keine wesentliche Verzögerung der Austauschoperationen auftreten.
Der dargestellte aktuelle Austauschalgorithmus, dessen Operationen schematisch in Fig. 7 dargestellt sind, wählt im allge-
Docket YO 968 098 109816/18 7. S
20A7062.
r 31 -
meinen für einen Austausch einen derjenigen Blöcke aus, für die in letzter Zeit kein Aufruf von der zentralen Verarbeitungseinheit ergangen ist und die während ihrer Anwesenheit im Arbeitsspeicher nicht verändert worden sind. Jeder Block, der kurz vor der Austauschwahl aufgerufen worden ist, ist in der Regel berechtigt, im Arbeitsspeicher zu verbleiben, ohne Rücksicht darauf, wie lange er bereits vor diesem Aufruf im Arbeitsspeicher gestanden hat. Wenn ein Block bei seinem Aufruf geändert wird, erwirbt er einen SpezialStatus, der ihn berechtigt, im Arbeitsspeicher solange zu verbleiben, als der Arbeitsspeicher wenigstens noch einen nichtgeänderten Block enthält, der nicht kurz vor der betreffenden Austauschwahl aufgerufen "
worden ist. Wenn das Aufrufbit (R-Bit), das einem Block zugeordnet ist, einen Wert von 1 hat, so wird dadurch angezeigt, daß der Block kurz vorher aufgerufen worden ist. Wenn die R-Bits aller Blöcke im Arbeitsspeicher gleichzeitig im 1-Zustand sind, so werden alle R-Bits automatisch auf 0 zurückgestellt, da es unter diesen Bedingungen nicht mehr möglich ist, eine Aussage darüber zu machen, welcher Block der zuletzt aufgerufene ist. Es wird deshalb angenommen, daß keiner der gespeicherten Blöcke kurz vorher aufgerufen worden ist. Eine Blockänderung wird angezeigt durch Einstellen des Änderungsbits AL auf 1. Kein Block, dessen AL-Bit auf 1 steht, kann aus dem Arbeitsspeicher entfernt werden, solange dieser einen Block i
enthält, dessen AL- und R-Bits 0 sind. Wenn alle ungeänderten Blocks R-Bits gleich 1 haben, wählt das System für einen Austausch einen Block aus, dessen AL-Bit auf 1 steht und dessen R-Bit den Wert 0 hat. Aufgrund des Umstandes, daß es nicht erlaubt ist, daß die R-Bits aller Blocks im 1-Zustand stehen, befindet sich jeweils wenigstens ein Block im Speicher, dessen R-Bit Ö ist. Wenn ein Block den Arbeitsspeicher verläßt, werden die AIj- und R-Bits, die der Arbeitsspeicheradresse, auf welcher dieser Block gestanden hat, zugeordnet sind, auf ö rückgestellt.
Die vorerwähnten R-Bits dürfen nicht mit dem anderen Typ von Aufruf-Bits verwechselt werden, die in der vorliegenden Beschreibung als H'-Bits bezeichnet werden. Die dar Arbeits-
Dn,,k<:i ,<■ w O9S 10 8 816/187B
Speicheradresse eines Blockes zugec-rdneten R- und R'-Bits wer-, den auf 1 gestellt, wenn dieser Block erstmals nach seiner Eingabe in den Arbeitsspeicher aufgerufen wird. Jeder nachfolgende Aufruf beläßt die Äufrufbits R und R' in det Regel im 1-Zustand. Die R- und R'-Bits werden jedoch nicht immer gleichzeitig in den 1- oder, in den O-Zustand gesetzt. Ein R-Bit 1 wird automatisch auf O zurückgestellt, wenn die R-Eits aller anderen im Arbeitsspeicher enthaltenen Blöcke einen 1-Zustand einnehmen. In diesem Falle erfolgt jedoch keine Rückstellung der R'-Bits. Wenn ein Blockaustausch ausgeführt wird, werden die R'-Bits > der im Arbeitsspeicher verbleibenden Blöcke zuletzt auf O zurückgestellt, sofern sie nicht bereits in diesem Zustand sind,
:· ■ ■'..'· ■' ■ ■'.■■■·.■ ■■■■■ ■
während die R-Bits solcher Blöcke hiervon unbeeinflußt bleiben. Die Funktion der R- und R'-Bits wird nachfolgend noch näher erläutert. Jeder Blockaufruf des Systems wird durch eine Speicheranforderung von der zentralen Verarbeitungseinheit CPU (Fig. 1) ausgelöst. Diese Requests bewirken einen Operationsschritt 500 (Fig. 6), der feststellt, ob der angeforderte Block im Arbeitsspeicher WM enthalten ist oder nicht. Wenn der angeforderte Block nicht im Arbeitsspeicher enthalten ist, verzweigt die Steuerung über Leitung 1000 zum Schritt 501, der eine Aufdatierungsoperation bezeichnet, die stets dann ausgeführt wird, wenn ein Block vom externenSpeicher BS zu holen
,ist. Unter Verwendung der gespeicherten Aufrufbits R1 bringt das System die Variablen P, A, E, C, B, U, L und Q automatisch auf den neuesten Stand. Hierbei erfolgt ein Vergleich zwischen der Zahl der tatsächlich ausgeführten Blockaustauschoperationen und.der Zahl der Aüstauschoperationen, die unter Steuerung des optimalen Austauschalgorithmus ausgeführt worden wären.
Nach Ausführung der Aufdatierung gemäß Schritt 501 geht die Steuerung in Abhängigkeit von den während der Aufdatierung gefundenen Bedingungen über Leitung 1004 oder 1006 zum Schritt 502 über, der bewirkt, daß der angeforderte Block in den Arbeitsspeicher WM auf einer Adresse gespeichert wird, die durch den Austauschalgorithmus festgelegt wird. Beim Ersatz
Docket YO 968 098 109816/1875
des Blockes, der vorher auf dieser Adresse gespeichert war, * ' wird das R1-Bit und das L-BIt, die dieser Adresse zugeordnet sind, auf O rückgestellt. Daraufhin kehrt die Steuerung über die Leitung 1OO7 zur Abfrageoperation zurück, wo für nachfolgend eingehende Speicheranforderungen erneut festgestellt wird, ob der angeforderte Block im Arbeitsspeicher enthalten ist oder nicht.
Wenn der angeforderte Block entweder als Resultat der laufenden Speicheranforderungen oder einer vorausgegangenen Speicheranforderung im Arbeitsspeicher enthalten ist, verzweigt die Steuerung vom Schritt 500 über eine Leitung 1001 zu den Schritten 503, und 505. Der Schritt 503 bewirkt lediglich, daß die Blocknummer und das L-Bit des angeforderten Blockes in einem Halten-Register für eine mögliche spätere Verwendung gespeichert wird. Gemäß Schritt 504 wird die Arbeitsadresse des angeforderten Blockes und die Blocknummer der in dem Block enthaltenen Informationen im linken und rechten Teil eines Speicheradreßregisters MAR des Arbeitsspeichers WM gespeichert. Hierdurch wird die auf der gewählten Adresse gespeicherte Information für eine Entnahme aus dem Arbeitsspeicher und eine Übertragung in das Speicherdatenregister MDR veranlaßt öder das Register MDR empfängt Informationen, die auf die betreffende Arbeitsspeicheradresse eingeschrieben werden soll. In beiden Fällen und unabhängig davon, ob es sich um eine Lese- oder eine Einschreiboperation handelt, wird in der nachfolgenden Beschreibung von einem "Aufruf" des adressierten Blockes gesprochen.
Gemäß Schritt 505 werden bestimmte zusätzliche Aufdatierungsoperationen als Einleitung zum Aufruf des angeforderten Blockes ausgeführt. Diese Operationen bestehen in einer Markierung des R-Bits, das dem angeforderten Block zugeordnet ist, um damit kenntlich zu machen, daß dieser Block aufgerufen worden ist. Ferner wird das AL-Bit des Blockes markiert, um kenntlich zu machen, daß der Block geändert wurde. Daraufhin geht die Steuerung über Leitung 1002 zum Schritt 506 über.
Docket YO 968 098 10 9 816/1875
Im Schritt 506 wird für den Fall, daß das L-Bit des angeforderten Blockes den Wert 1 hat, eine Anpassimg der Werte A und U vorgenommen, wie es oben in Verbindung mit den Fign. 4A und 4b er- ; läutert wurde. Hierauf folgend oder unmittelbar am Beginn der
Operation 506 wird für den Fall, daß L = 0, das dem angeforderten Block zugeordnete Wort im assoziativen Speicher AM über dessen Speicherdatenregister MDR aufgerufen, und das R'-Bit, das dem angeforderten Block zugeordnet ist, wird, auf 1 gestellt. Hiermit ist die Blockaufrufoperation, die durch den laufenden Speicheraufruf ausgelöst wurde, beendet, und die Steuerung kehrt Über " Leitung 1008 (Fign. 6 und 9A) zum Arbeitsprogrammder zentralen Verarbeitungseinheit CPU zurück.
Die Fig. 7 zeigt das System von Fig. 6 mit einer detaillierteren Darstellung der Funktionen der Schritte 502 und 505 von Fig. Die übrigen Schritte von Fig. 6 (500, 501, 503, 504 und 506) werden in einem späteren Teil der Beschreibung ausführlich erläutert.
Wenn der angeforderte Block nicht im Arbeitsspeicher WM enthalten ist, sondern vom externen Speicher BS geholt werden muß, so bedeutet dies, daß das System eine Adresse im Arbeitsspeicher auswählen muß, auf welcher der durch eine Blocknummer identi- \ fizierte, angeforderte Block gespeichert werden kann. Die Art und Weise, in welcher der bis dahin auf dieser Adresse befindliche und zu ersetzende Block während der Austauschoperation behandelt wird, hängt davon ab, ob dieser Block während seines Aufenthaltes im Arbeitsspeicher verändert wurde oder nicht. Wenn der zu ersetzende Block unverändert geblieben ist, wird er einfach durch den neu zugänglichen Block überschrieben, da sein Duplikat im externen Speicher enthalten ist. Wenn der zu ersetzende Block jedoch verändert worden ist, muß er zuvor in den externen Speicher übertragen werden, bevor auf seinen Platz im Arbeitsspeicher der neu eingehende Block gespeichert wird. Da das Einschreiben von Informationen in den externen Speicher ein relativ langsamer Vorgang ist# wird er nach Möglichkeit vermieden. Aus diesem Grunde wird für den Austausch denjenigen Adressen des Arbeits-
Docket YO 968 098 109816/1875
Speichers der Vorzug gegeben, deren gespeicherte Blöcke während ihres Aufenthaltes im Arbeitsspeicher unverändert geblieben sind. Andererseits ist es in der Regel nicht erwünscht, einen unverändert gebliebenen Block zu ersetzen, der vor kurzem erst in den Arbeitsspeicher eingegeben worden ist, da eine starke Wahrscheinlichkeit besteht, daß ein derartiger Block bald erneut von der zentralen Verarbeitungseinheit aufgerufen werden wird.
Diesem Sachverhalt wird durch das Adressenauswahlverfahren der Schritte 510 bis 515 in Fig. 7 Rechnung getragen. Wenn der im Schritt 510 ausgeführte Test ergibt, daß der assoziative Speicher | AM wenigstens ein Wort enthält, dessen AL- und R-Bits beide O sind, wird ein Wortzähler weitergeschaltet auf das nächste im assoziativen Speicher AH enthaltene Wort, dessen AL-Bit und R-Bit die Kombination 0-0 enthalten (Schritt 511). Der im Arbeitsspeicher auf der Adresse dieses AM-Wortes gespeicherte Block ist der gemäß Schritt 512 zu ersetzende Block. Da sein AL-Bit 0 ist, kann der Austausch einfach durch überschreiben dieses Blockes mit dem neu zugehenden Block erfolgen. Die Steuerung kehrt daraufhin über Leitung 1007 zum Schritt 500 zurück, wo erneut eine Untersuchung durchgeführt wird, ob der angeforderte Block nun im Arbeitsspeicher enthalten ist oder nicht. Im vorliegenden Falle wird die Antwort dieser Untersuchung
"ja" sein. i
Wenn der Test des Schrittes 510 ergibt, daß kein Wort im assoziativen Speicher AM ein AL-Bit und ein R-Bit aufweist, die beide O sind, wird ein weiterer Test durchgeführt (Schritt 513), um zu bestimmen, welches der Worte im assoziativen Speicher AM ein AL-Bit aufweist, das den Wert 1 hat, und ein R-Bit, das 0 ist. Da alle R-Bits automatisch auf 0 rückgestellt werden, wenn jedes dieser Bits auf 1 gestellt worden ist, ist sichergestellt, daß im assoziativen Speicher AM wenigstens ein Wort enthalten ist, dessen R-Bit gleich 0 ist. Der Wortzähler wird deshalb zum nächsten Wort im assoziativen Speicher AS weitergeschaltet,
Docket YO 968 098 10 9 816/1875
dessen AL- und R-Bitkorabination 1-0 ist (Schritt 514). Der Block, der auf der diesem Wort zugeordneten Adresse im Arbeitsspeicher WH steht, ist der zu ersetzende Block. Da dieser Block während seines Aufenthaltes im Arbeitsspeicher geändert wurde, muß sein Inhalt zur Vornahme des Austausches in den externen Speicher übertragen werden (Schritt 515). Nach der Austauschoperation kehrt die Steuerung wie vorher zum Schritt. 500 zurück.
Wenn nun der angeforderte Block im Arbeitsspeicher WH festgestellt wird, werden die notwendigen Aufdatierungsoperationen für die AL- und R-Bits des entsprechenden Wortes im assoziativen Speicher AH durchgeführt. Gemäß Schritt 515 wird das R-Bit dieses Wortes auf 1 gesetzt zur Anzeige dafür, daß der zugeordnete Blocke aufgerufen worden ist. Daraufhin wird durch Schritt 517 abgefragt, ob der Block bei seinem Aufruf geändert worden ist oder nicht. Wenn eine Änderung erfolgt ist, wird das AL-Bit dieses Blockes auf 1 gesetzt (Schritt 518). Ist dies nicht der Fall, bleibt dieses Bit im O-Zustand. Die Steuerung geht dann zum Schritt 519 über, wo ein Test durchgeführt wird, um zu prüfen, ob die R-Bite aller Worte im assoziativen Speicher nun im 1-Zustand sind. Wenn dies der Fall ist, werden alle R-Bits in den O-Zustand rückgestellt (Schritt 520), andernfalls erfolgt keine Änderung in den R-Bits. Hiermit ist die Aufdatierungsoperation der AL- und R-Bits beendet, und die Steuerung geht über Leitung 1002 zum Schritt 506 über.
Obgleich die Fign. 6 und 7 das erfindungsgemäße Effektivitätsmeßsystem anhand eines bestimmten Austauschalgorithmus zeigen, ist aus diesen Fign. auch ersichtlich, daß das System ebenso bei anderen Austauschalgorithmen anwendbar ist. Alle Austauschalgorithmen haben bestimmte gemeinsame Herkmale, von denen eines der sogenannte "Block-Sonderfall" ist, der darin besteht, daß das System eine Unterbrechung des Arbeltsprogrammes der zentralen Verarbeitungseinheit CPU anfordert, wenn ein verlangter Block nicht im Arbeitsspeicher gefunden werden kann. Das vorliegende Effektivitätsmeßsystem ist so angepaßt, daß es inter-
Docket YO 968 098 109816/1875
mittlerend während solchen Unterbrechungsperloden in einer Zeit ausgeführt werden kann, in welcher die zentrale Verarbeitungseinheit auf den angeforderten Block wartet. Das Effektivitätsmeßsystem benutzt daher die zentrale Verarbeitungseinheit auf Zeitteilungsbasis, ohne daß dadurch eine wesentliche Verlangsamerung der Austauschoperationen eintritt.
Assoziativer Speicher AM
Der assoziative Speicher AM (Fig. 1) hat die Funktion eines herkömmlichen Umwertspeichers für die Herstellung einer Beziehung zwischen der physischen Blockadresse im Arbeitsspeicher WM und i der virtuellen Blockadresse (Blocknummer) im externen Speicher BS. Im vorliegenden Beispiel wird für diese Funktion ein festverdrahteter assoziativer Speicher verwendet. Dies ist jedoch nicht zwingend notwendig; es können statt dessen auch andere für sich bekannte Umwertspeicher oder Zuordner Verwendung finden.
Die Fign. 8A bis 8D zeigen ein detailliertes Blockschaltbild des assoziativen Speichers AM, eines Argumentregisters 32, einer Steuerschaltung 34 für den assoziativen Speicher und einer Argument-Maskierungsschaltung 46. Alle diese Teile kehren in allgemeiner Darstellung in den Fign. 9D, 9E und 9J wieder. Der assoziative Speicher AM, ein MDR-Speicherdatenregister 20 ,
(Fig. 9E), eine Schreibmaskenschaltung 47 (Fig. 9G), das Argumentregister 32 und die Argumentmaskenschaltung 46 sind für sich bekannte Schaltungen, die nachfolgend zum Verständnis ihrer Funktion im vorliegenden System nur kurz erläutert werden sollen. Die Steuerschaltung 34 unterscheidet sich von herkömmlichen Steuerschaltungen für assoziative Speicher dadurch, daß sie einen aus mehreren Flip-Flops bestehenden Wörtzähler aufweist.
Der assoziative Speicher AM kann verschiedene Operationen ausführen. Eine dieser Operationen besteht in der Bestimmung, welche Einträge im assoziativen Speicher AM ein Feld (oder Felder) aufweisen, die mit einem bestimmten Feld (oder Feldern) in einem
Argumentregister 32 übereinstimmen. Dies wird ausgeführt durch Anlegen der gewünschten Bitkombination der betreffenden Felder über ausgewählte der Steuerleitungen 48 und 49 (Fig. 8D) an bistabile Speicherelemente 50 des betreffenden Feldes im Argumentregister 32. Ein Signal auf einer Leitung 48 stellt die betreffenden bistabilen Speicherelemente 50 in ihren O-Zustand, und ein Signal auf Leitung 49 setzt die betreffenden bistabilen Speicherelemente 50 in ihren 1-Zustand. Das Argumentregister 32 wird durch gleichzeitiges Anlegen je eines Signales an alle Leitungen 48 rückgestellt. Wenn den Steuerleitungen 48 und 49 des Argumentregisters 33 Signale zugeführt werden, wird auch ein Signal an die Steuerleitungen 52 angelegt (Fig. 8D), wo» durch eine Einstellung der bistabilen Speicherelemente 53 der Argumentmaskenschaltung 46 bewirkt wird, die dem zu vergleichenden Feld bzw. Feldern angehören. Alle bistabilen Speicherelemente 53 wurden vorhergehend durch ein gleichzeitig an die Leitungen
51 angelegtes Signal rückgestellt. Die Signale auf den Leitungen
52 bewirken daraufhin eine Einstellung der bistabilen Speicherelemente 53 entsprechend den in die gewünschten Felder einzuspeichernden Daten in den 1-Zustand. Als weitere vorbereitende Operation wird ein Signal an die Leitung 54 angelegt, um alle Obereinstimmungsanzeiger, die durch MI-Flip-Flops 55 (Fig. 8B) dargestellt werden, in ihren 1-Zustand einzustellen. Wenn ein Signal zur zugeordneten Leitung 57 (Fig. 8D) geleitet wird, erfolgt eine Entnahme des in den Argument-Bitspeicherelementen 50 gespeicherten Inhaltes über Leitungen 56 zu bistabilen Elementen 53, welche die Argumentmaakenechaltung 46 steuern. Diejenigen Speicherelemente 53 der Argumentmaskenschaltung, welche sich im 1-Zustand befinden, lassen die über die Leitungen 58 angelegten binären Daten zu den entsprechenden bistabilen Speicherelementen 60 (Fig» 8C) eines jeden Wortspeicherbereiches bzw. einer jeden Zeile des assoziativen Speichers AM hindurch. Solange der Inhalt eines jeden derartigen bistabilen Bitspeicherelementes 60 gleich dem Inhalt des zugeordneten Argument-Bitelementes 50 ist, erzeugt der assoziative Speicher AM keine Ausgangssignale. Wenn jedoch das über eine Leitung 58 einem
Docket YO 968 098 109818/1875
Speicherelement 60 zugeführte binäre Signal vom Inhalt dieses Speicherelementes 60 abweicht, liefert das Element 60 ein Ausgangssignal auf einer zugeordneten Nichtübereinstimmung-Anzeigeleitung 62. Das Signal auf Leitung 62 dient zur Rückstellung des dem betreffenden Wort zugeordneten übereinstimmungsanzeigerflipflop 55 in seinen O-Zustand.
Die Entnahme eines übereinstimmenden Wortes aus dem assoziativen Speicher Speicher geschieht in der folgenden Weise: Die übereinstimmungsanzeiger 55 (Fig. 8B) werden durch ein Signal auf Leitung 64 abgefragt. Dieses Signal gelangt zu UND-Schaltungen \ 66 und 84 des ersten Wortes im assoziativen Speicher AH. Ein zweiter Eingang der UND-Schaltung 66 ist der O-Ausgang des Flip-Flops 55, und ein zweiter Eingang der UND-Schaltung 84 ist der 1-Ausgang des Flip-Flops 55. Wenn der Flip-Flop 55 des obersten Wortes im assoziativen Speicher AM in seinem 1-Zustand steht, passiert das Signal auf Leitung 64 die UND-Schaltung 84 und gelangt über eine Leitung 88 zu einer ODER-Schaltung 90. Wenn der Flip-Flop 55 des obersten Wortes im assoziativen Speicher dagegen im O-Zustand steht, gelangt das Signal von Leitung 64 durch die UND-Schaltung 66 zu entsprechenden UND-Schaltungen 66 und 84 des nächstniedrigeren Wortes im assoziativen Speicher. Wenn alle Flip-Flops 55 ihren g
O-Zustand einnehmen, erscheint das Signal von Leitung 64 auf Leitung 72 und schaltet den EOL-Flip-Flop 36 in seinen 1-Zustand.
Unter Steuerung der Obereinstimmungsanzeige-Flip-Flops 55 wird entweder Information in einen Wortbereich des assoziativen Speichers AH eingeschrieben oder aus diesem Wortbereich ausgelesen. Zur Ausführung einer Schreiboperation wird ein Signal an die Leitung 74 angelegt, die au je einem Eingang von UND-Schaltungen 76 (Fig. 8B) führt, während für eine Leseoperation ein Signal an eine Leitung 78 angelegt wird, die zu je einem Eingang von UND-Schaltungen 80 führt. Das Signal von der Abfrageleitung 64 gelangt zu einer UND-Schaltung 84, die dem obersten Wort im assoziativen Speicher zugeordnet ist. Ent-
Docket YO 968 098 109 816/1875
sprechende UND-Schaltungen 84 sind auch jedem der übrigen Wortbereiche im assoziativen Speicher zugeordnet. Ein Eingang von jeder dieser weiteren UND-Schaltungen 84 ist durch je eine Leitung 70 mit dem Ausgang der UND-Schaltung 66 des vorausgehenden Wortbereiches verbunden. Der andere Eingang einer'jeden dieser UND-Schaltungen 84 ist durch eine Leitung 86 an den 1-Ausgang des Übereinstimmungsanzeigers 55 des gleichen Wortbereiches angeschlossen. Von diesen UND-Schaltungen 84, die somit durch 1-Ausgangssignale von ihren Übereinstimmungsanzeigern 55 zu einer Zeit konditioniert werden, wenn ein Abfragesignal auf Leitung 64 auftritt, ist im konditionierten Zustand nur die des obersten Wortbereiches zur Übertragung eines Signals von Leitung 64 über Leitung 88, ODER-Schaltung 90 und Leitung 92 zu je einem Eingang von zwei UND-Schaltungen 76 und 80 wirksam. Wenn eine Schreiboperation ausgeführt wird, ist die UND-Schaltung 76 durch das Signal auf Leitung 74 vorbereitet, ein Ausgangssignal auf Leitung 94 zu erzeugen, das vom Inhalt des Speicherdatenregisters 20 (Fig. 9E) das Feld, das durch 1-Bits in der Schreibmaskenschaltung 47 bezeichnet ist, in die Bitspeicherelemente 60 des betreffenden WortSpeicherbereiches im assoziativen Speicher AM überträgt. Die Schreibmaskenschaltung 47 bestimmt daher, in welche Felder eines Wortbereiches im Speicher AH Information eingeschrieben wird. Wenn ein Signal auf der Leseleitung 78 gleichzeitig mit dem Signal auf Leitung 64 auftritt, liefert die entsprechende UND-Schaltung 80 ein Ausgangssignal auf eine Leitung 96, welches eine Übertragung des Inhaltes des zugeordneten Wortbereiches im Speicher AN über Leitungen 97 in das MDR-Speicherregieter 20 verursacht.
Die Steuerschaltung 34 enthält einen Wortzählerflipflop 98 für jeden Wortbereich des Speichers AM. Durch ein Auslösesignal auf einer Leitung 101 werden die Wortzählerflipflops in einen Anfangszustand gebracht, gemäß dem der Wortszählerflipflop des ersten oder obersten Wortbereiches in seinem 1-Zustand und die Wortzählerflipflops der übrigen Wortbereiche in
Docket YO 968 098 109816/1875
ihrem O-Zustand stehen. Dies wird dadurch bewirkt, daß das Signal von Leitung 101 über eine ODER-Schaltung 102 zum 1-Eingang des Wortzählerflipflops des ersten Wortbereiches und durch ODER-Schaltungen 104 zu den O-Eingängen der Wortzählerflipflops der übrigen Wortbereiche geleitet wird. Das Anfangs-Einstellsignal tritt auf Leitung 101 am Beginn eines Maschinenlaufes auf und wird danach nicht wiederholt, solange das gleiche Programm wirksam ist.
Wenn es gewünscht wird, die Einstellung der Wortzählerflipflops zu ändern, wird ein Konditionierungssignal über Leitung 106 zu λ einem Eingang der UND-Schaltung 108 (Fig. 8A) eines jeden Wortbereiches geleitet. Der zweite Eingang der UND-Schaltungen 108 ist mit einer Ausgangsleitung 110 von der 1-Seite des Wortzählerflipflops des betreffenden Wortbereiches verbunden. Da jeweils nur ein Wortzählerflipflop im 1-Zustand steht, ist zu einer bestimmten Zeit auch stets nur eine UND-Schaltung 108 vorbereitet, bei Auftreten eines Signales auf Leitung 106 ein Ausgangssignal auf einer Leitung.112 zu erzeugen. Dieses Signal gelangt zu je einem Eingang von zwei UND-Schaltungen 114 und des nächsten Wortbereiches. Der andere Eingang der UND-Schaltung 114 wird durch die Leitung 68 vom 0-Ausgang des zugeordneten Obereinstimmungsanzeigers 55 gebildet, und der andere Eingang der UND-Schaltung 116 wird durch eine Leitung 86 vom 1-Ausgang * dieses Obereinstixmnungsanzeigers 55 gebildet. Eine Ausgangsleitung 118 der UND-Schaltung 114 ist mit einem Eingang einer UND-Schaltung 120 gekoppelt, deren zweiter Eingang über eine Leitung 122 mit dem 0-Ausgang des zugeordneten Wortzählerflipflops 98 in Verbindung steht. Die Ausgangsleitungen der UND-Schaltungen 120 und 108 eines jeden Wortbereiches sind gemeinsam mit einer Leitung 112 verbunden. Der Ausgang der UND-Schaltungen 116 ist an je eine Leitung 124 angeschlossen, die zum 1-Eingang eines Zwischenspeicherflipflops 126 führt.
Die soeben beschriebenen Schaltverbindungen gestatten die übertragung eines Signals von Leitung 106 über die UND-Schaltung 108
Docket YO 968 098 109816/1875
eines Wortzählerflipflops 98, das sich im 1-Zustand befindet, zu der zugeordneten Leitung 112. Das Signal von Leitung 112 gelangt zu den UND-Schaltungen 114 und 116 des nachfolgenden Wortbereiches. Wenn der Übereinstimmungsanzeiger 55 dieses Wortbereiches im O-Zustand steht, läuft dieses Signal über die UND-Schaltung 114, die Leitung 118, die UND-Schaltung 120 und die Leitung 112 dieses Wortbereiches zu den UND-Schaltungen 114 und 116 des nächsten Wortbereiches. Das Signal breitet sich in dieser Weise aus, bis ein Wortbereich erreicht ist, desseh übereinstimmungsanzeiger im 1-Zustand steht. In einem solchen Falle liefert die zugeordnete UND-Schaltung 116 ein Ausgangssignal, das zur Einstellung des zugeordneten Zwischenspeicherflipflops 126 in dessen 1-Zustand benutzt wird. Wenn das Wortzähler-Steuersignal der Leitung 106 zu einer Zeit zugeführt wird, wenn der Wortzählerflipflop 98 des niedrigsten Wortbereiches im 1-Zustand steht oder wenn dieses Steuersignal die UND-Schaltung 114 des niedrigsten Wortbereiches zu einer Zeit durchläuft, in welcher die Flipflops 98 des niedrigsten Wortbereiches und des unmittelbar vorausgehenden Wortbereiches ihre O-Zustände einnehmen, wird das Steuersignal zurückgeleitet zu den UND-Schaltungen 114 und 116 des obersten Wortbereiches,
Das Signal auf Leitung 106 wird von einem Signal auf Leitung 130 gefolgt, das UND-Schaltungen 132 wirksam macht, um eine Übertragung des Inhaltes des betreffenden Zwischenspeicherflipflops 126 in den zugeordneten Wortzählerflipflop 98 zu übertragen. Hierdurch wird der Wortzählerflipflop des Wortbereiches, dessen Zwischenspeicherflipflop 126 zuvor durch das Signal auf Leitung 106 in den 1-Zustand gebracht worden war, ebenfalls in den 1-Zustand geschaltet. Die Weiterschaltung des Wörtzählers wird durch ein Signal von der ODER-Schaltung 250 beendet, das aus verschiedenen Quellen stammen kann und über Leitung 134 alle Zwischenspeicherflipflops 126 in ihren O-Zustand rückstellt. Es ist möglich, daß der Wortzähler vollständig durchläuft und wieder seine Startstellung erreicht, wenn kein übereinstimmendes Wort gefunden wird.
Docket YO 968 098 109818/1875
20A7Q62
Ebenso wie eine Schreib- oder Leseoperation in der oben erläuterten Weise durch die übereinstiinmungsanzeiger 55 gesteuert werden kann, ist es möglich, daß die Lese- und Schreiboperationen unter Steuerung der Wortzähler-Flipflops 98 ablaufen. Um dies zu verwirklichen werden die gewünschten Lese- oder Schreib-Eingangssignale den entsprechenden Leitungen 74 und 78 zu einer Zeit zugeführt, zu der ein Steuersignal auf einer Leitung 136 auftritt (Zugriff unter Steuerung des Wortzählers). Das Signal auf Leitung 136 gelangt zum Eingang einer UND-Schaltung 138 (Fig. 8B), deren· zweiter Eingang über eine Leitung 110 mit dem 1-Ausgang des zugeordneten Wortzählerflipflops 98 verbunden ist. Da jeweils nur einer der Flipflops 98 im 1-Zustand steht, kann nur eine der UND-Schaltungen 138 ein Ausgangssignal erzeugen, wenn ein Steuersignal auf Leitung 136 auftritt. Das Signal auf Leitung 140 von dieser UND-Schaltung wird über eine ODER-Schaltung 90 zur Erregung der entsprechenden UND-Schaltung 76 oder 80 benutzt. Durch die Ausgangssignale dieser UND-Schaltung wird die Schreiboder Leseoperation in der gleichen Weise bewirkt, wie es vorausgehend für den Zugriff unter Steuerung der übereinstiinmungsanzeiger 55 beschrieben wurde.
Wenn der assoziative Speicher anfangs geladen wird, wird der Wortzählerflipflop 98 des obersten Wortbereiches in den 1-Zustand gebracht, während alle übrigen Flipflops 98 auf 0 gestellt werden. Unter diesen Bedingungen wird jeweils das erste in den assoziativen Speicher einzubringende Wort in den zweiten Wortbereich eingespeichert. Das zweite Wort wird in den dritten Wortbereich eingespeichert usw. Wenn angenommen wird, daß der assoziative Speicher nur eine Kapazität von drei Wortbereichen hat, wird das dritte Wort in den ersten Wortbereich eingespeichert. Dementsprechend wird der erste im Arbeitsspeicher WM (Fign. 1 und 9C) einzuspeichernde Informationsblock auf die zweite Blockadresse dieses Speichers gebracht, der zweite Block wird auf die dritte Adresse und der dritte Block auf die erste Adresse des Speichers WH gespeichert.
Docket YO 968 098 109816/1875
20A7062
Das Effektivitätsmeßsystem
Die Fign. 9A bis 9K geben in der aus Fig. 9 ersichtlichen Zusammensetzung ein Blockdiagramm des dargestellten Ausführungsbeispiels des Effektivitätsmeßsystems wieder.
Ein T-Taktgeber 198 (Fig. 9A) besteht aus einer Anzahl monostabiler Impulsgeneratoren, die auf Ausgangsleitungen 200 bis 237 Taktimpulse TO bis T37 erzeugen. Wenn einer der monostabilen Impulsgeneratoren von seinem erregten Zustand in seinen Rückstellzustand übergeht, erzeugt er ein Nicht-Signal (z.B. T4). In einigen Fällen werden diese Nicht-Signale auf vom Taktgeber 198 wegführenden, zusätzlichen Leitungen, wie beispielsweise 2O41 verwendet. Ansonsten dienen diese Signale jedoch zur internen Ablaufsteuerung im Taktgeber 198. Der Einfachheit halber wurden die Ausgangsleitungen des Taktgebers 198 nicht zu den verschiedenen Schaltungsteilen des Systems durchgeführt, wo sie wirksam werden. Statt dessen wurde an jeder Stelle des Systems, wo eine bestimmte Taktleitung wirksam wird, eine separate Leitung eingetragen mit der Bezeichnung der zugehörigen Taktleitung.
Im allgemeinen wird jeweils dann, wenn ein monostabiler Impulsgenerator im Taktgeber 198 in seinen Rückstellzustand übergeht, der folgende monostabile Impulsgenerator eingestellt. In einigen Fällen wird jedoch eine derartige monostabile Schaltung durch ein Ausgangssignal von einer bestimmten Stelle des Systems her eingeschaltet. Die betreffenden Signale sind als Eingänge auf der linken Seite des Taktgebers 198 (Fig. 9A) dargestellt. Der Schaltungsaufbau des Taktgebers 198 ist nicht erfindungswesentlich und es kann zu diesem Zweck ein bekannter Schaltungsaufbau gewählt werden.
Das System weist ferner einen nichtdargestellten Taktgeber zur Erzeugung weiterer Taktsignale auf, die im dargestellten Beispiel den Anfangsbuchstaben ME tragen. Dieser Taktgeber kann in der gleichen Weise aufgebaut sein wie der Taktgeber 198. Auch in diesem Falle wird ein Teil der Signale nach einer vorgegebenen
Docket YO 968 098 109816/1875
Signalfolge innerhalb des Taktgebers und ein anderer Teil in Abhängigkeit von bestimmten Signalbedingungen während des Betriebes des Systems erzeugt.
Das System weist als Grundelemente eine zentrale Verarbeitungseinheit CPU (Fig. 9A) , einen schnellen Arbeitsspeicher ViM mit begrenzter Kapazität (Fig. 9C), der beispielsweise ein Magnetkernspeicher sein kann, und einen assoziativen Speicher AM (Fig. 9D) auf. Ein externer Speicher BS, der beispielsweise ein Magnetplattenspeicher sein kann, steht mit dem Arbeitsspeicher VJM über einen Übertragungskanal CH in Verbindung. Der Übertragungskanal CH, der verschiedene Steuerschaltungen aufweist, ist für sich bekannt. Er ist üblicherweise Teil eines elektronischen Datenverarbeitungssystems. Der Übertragungskanal CH empfängt die serienweise erhaltene Information vom externen Speicher BS, sammelt die entsprechenden Datenbits zu Worten und überträgt diese Worte in Paralleldarstellung zum Arbeitsspeicher WM. Außerdem ist der Übertragungskanal CH in der Lage, Informationsworte in Parallelform vom Arbeitsspeicher WM zu empfangen und die Bits dieser Worte serial zu dem externen Speicher BS zu übertragen. Der Übertragungskanal CH enthält auch die notwendigen Steuerschaltungen, um die Adressen, von welchen Information entnommen oder zu welchen Information Übertragen wird, zu inkrementieren, sowie Steuerschaltungen zur Anzeige, wenn die übertragung eines Informationsblockes beendet ist.
Wie bereits erwähnt, besitzt der assoziative Speicher AM (Fig. 9D) einen Wortspeicherbereich für jeden Wortspeicherplatz In Arbeitsspeicher WM. Jeder der Wortspeicherbereiche enthält acht Felder, deren Aufteilung bei Betrachtung des Speicherdatenregisters 20 (Fig. 9E) deutlich wird. Von rechts nach links sind dies die folgenden Felder: Ein einzelnes Bit als R*-Feld, ein einzelnes Bit als L-FeId, ein einzelnes Bit als SS-Feld, ein einzelnes Bit als AL-FeId, ein einzelnes Bit als R-FeId, ein ID-FeId, welches das Programm der zentralen Verarbeitungseinheit CPU identifiziert, von welchem der betreffende Informationsblock benutzt wird, ein Blocknunaernfeld, das den betreffenden Block Docket YO 968 098 1 Q 9 8 1 6 / 1 8 7 S
Im externen Speicher BS kennzeichnet und zur Adressierung in diesem Speicher dient, und die Blockadresse im Arbeitsspeicher NM. Das äußerste rechte Feld eines jeden Wortspeicherbereiches im assoziativen Speicher WM kann nur gelesen werden; ein Einschreiben neuer Information in dieses Feld ist nicht möglich. Die übrigen Felder eines jeden Wortspeicherbereiches können beliebig geändert werden.
Die zentrale Verarbeitungseinheit CPU (Fig. 9A) startet den Betrieb des Systems durch Anforderung eines Informationsblockes vom Arbeitsspeicher WM. Wenn dies eintritt, wird das Programmnnzeichen ID und die Blocknummer des angeforderten Blockes, die zugleich die Adresse des Blockes im externen Speicher BS darstellt, über Leitungen 22 dem Adreßregister 24 (Fig. 9B) zugeführt. Außerdem wird ein Signal von der zentralen Verarbeitungseinheit CPU entweder auf Leitung 26 oder auf Leitung 28 erzeugt, um den Änderungsflipflop 30 in geeigneter Weise einzustellen. Der Flipflop 30 wird in seinen 1-Zustand gebracht, wenn das von der zentralen Verarbeitungseinheit benötigte Informationswort zu ändern ist.
Hiernach ist das System bereit, den Schritt 500 von Fig. 6 und 7 auszuführen. Während dieses Schrittes wird bestimmt, ob der das benötigte Wort enthaltende Block im Arbeitsspeicher WM enthalten ist oder nicht. Diese Bestimmung wird ausgeführt durch Entnahme des Programm-Kennzeichen ID und der Blocknummer aus dem Register 24 und durch übertragung dieser Daten in das Argumentregister 32 des assoziativen Speichers AM. Es wird eine Assoziationsoperation auf diese Felder durchgeführt, um zu ermitteln, ob ein Programm-Kennzeichen ID und eine Blocknummer gleichen Inhalts im assoziativen Speicher enthalten sind. Die Assoziationsoperation besteht darin, daß die im Argumentregister 32 enthaltenen Felder dem assoziativen Speicher AM zugeführt und mit den entsprechenden Feldern in jedem Wortspeicherbereich dieses Speichers verglichen werden. Jede Nichtübereinstimmung dieser Vergleiche bewirkt, daft der zugeordnete Obereinstimnungsanzeiger
Docket to ms Ott 109816/1875
55 des betreffenden Wortspeicherbereiches in der Steuerschaltung 34 rückgestellt wird. Die Übereinstimmungsanzeiger 55 werden danach abgefragt, und ein IOl-Flipflop 36 wird in den 1-Zustand gesetzt, wenn alle Ubereinstimmungsanzeiger auf O zurückgestellt worden sind. Dies ist der Fall, wenn keine Übereinstimmung zwischen dem Inhalt des assoziativen Speichers AM und dem im Argumentregister 32 stehenden Programm-Kennzeichen ID und der Blocknummer vorliegt. Eine solche Situation zeigt an, daß der angeforderte Block nicht im Arbeitsspeicher ViM enthalten ist, so daß die Steuerung des Systems zur Ausführung des Schrittes 501 von Fign. 6 und 7 fortschreitet.
Die Operationen des Schrittes 501 werden in einem späteren Abschnitt unter Bezugnahme auf ein Anwendungsbeispiel im Detail erläutert. Vorerst soll lediglich darauf hingewiesen werden, daß diese Operationen durch die ME-Operationssteuersignale ausgeführt werden, die neben dem Kästchen 201 in Fign. 6 und 7 angegeben sind. Nach Beendigung des Schrittes 501 schreitet die Steuerung des Systems zur Ausführung des Schrittes 510 (Fig. 7) fort.
Während des Schrittes 510 wird festgestellt, ob in den Wortspeicherbereichen des assoziativen Speichers AM AL- und R-Felder enthalten sind, deren Inhalt 0 ist. Der 0-Inhalt im R-Bit eines λ Wortspeicherbereiches zeigt an, daß der zugeordnete Informationsblock in letzter Zeit nicht aufgerufen worden ist. Ein O-Inhalt im AL-Bit eines Wortspeicherbereiches zeigt an, daß der zugeordnete Informationsblock während seiner Anwesenheit im Arbeitsspeicher WM nicht geändert worden ist. Aus der vorausgehenden Erläuterung ist bekannt, daß ein Block, für welchen diese Situation existiert, ein bevorzugter Kandidat für einen Blockaustausch ist. Der Schritt 510 wird ausgeführt, indem sowohl das AL-FeId als auch das R-FeId im Argumentregister 32 (Fig. 9J) auf 0 gesetzt werden, wonach eine Assoziationsoperation auf diese Felder des Inhaltes der Wortspeicherbereiche im assoziativen Speicher durchgeführt wird. Die Steuerschaltung 34 sorgt
Docket YO 968 098 109 816/1875
in der beschriebenen Weise dafür, daß der übereinstimmungsanzeiger 55 eines jeden Wortspeicherbereiches, dessen AL-FeId und R-FeId nicht beide O sind, in seinen O-Zustand zurückgestellt wird. Wenn keiner der Wortspeicherbereiche einen O-Inhalt im AL-FeId und im R-FeId aufweist, wird der EOL-Flipf lop,. 36 am Ende der Assoziationsoperation in seinen 1-Zustand gebracht.
Es sei angenommen, daß wenigstens ein Wortspeicherbefeich im assoziativen Speicher AM sowohl Im AL-FeId als auch Im R-FeId eine O enthält. Unter diesen Bedingungen geht die Steuerung des Systems vom Schritt 510 zum Schritt 511 über (Fig. 7). Da es möglich ist, daß mehr als ein Wortspeicherbereich im assoziativen Speicher AM O-Bits in den beiden Feldern A, L und R besitzt, ist es notwendig, ein zusätzliches Kriterium zu benutzen für die Auswahl des auszutauschenden Blockes. Diese zusätzliche Auswahl wird während des Schrittes 511 mit Hilfe des WortZählers in der Steuerschaltung 34 (Fig. 8A) vorgenommen. Alle Wortzählerflipflops 98 sind rückgestellt mit Ausnahme desjenigen, der dem Wortspeicherbereich zugeordnet ist, welcher dem zuletzt im Arbeitsspeicher WM ausgetauschten Block entspricht. Der Schritt 511 wird ausgeführt, indem eine Suchoperation angefangen wird, beginnend mit dem Wortspeicherbereich, der in Bezug auf die Wortzählerstellung als nächster folgt. Durch diese Suchoperation soll der nächste Wortspeicherbereich mit auf 1 stehendem Übereinstimmungsanzeiger 55 ermittelt werden. Wenn dieser Wortspeicherbereich gefunden ist, wird der Wortzählerflipflop dieses Bereiches auf 1 gestellt und der vorher im 1-Zustand befindliche Wortzählerflipflop 98 in den O-Zustand rückgestellt. Diese Operation wird jedoch nicht ausgeführt, wenn der auf diese Weise gefundene Wortspeicherbereich derjenige ist, bei welchem die zuletzt erwähnte Suchoperation begonnen hat.
Vom Schritt 511 geht die Steuerung auf den Schritt 512 (Fig. 7) über, der bewirkt, daß mit der Blockadresse für den Arbeltsspeicher WM im Wortspeicherbereich, der durch die zuletzt erläuterte Suchoperatiom im assoziativen Speicher AM ermittelt wurde, ein Blockaustausch vorgenommen wird. Hierzu wird die
Docket YO 968 098 10 9 816/1875
Blockadresse aus dem ausgewählten Wortspeicherbereich in ein CAR-SpeicheradreBregister 38 (Fig. 9C) übertragen. Des weiteren wird das Programm-Kenzeichen ID und die Blocknummer des neu in den Arbeitsspeicher WH einzuschreibenden Informationsblockes vom Adreßregister 24 (Fig. 9B) in ein RAR-Austauschadreßregister 40 (Fig. 9C) übertragen. Schließlich wird auch ein Austauschen-Steuersignal über eine Leitung 223 dem Übertragungskanal CH zugeführt. Dieses Steuersignal bewirkt, daß der Übertragungskanal CH den angeforderten Informationsblock liest, beginnend mit der im Austauschadreßregister 40 enthaltenen und als Adresse für den externen Speicher BS benutzten Blocknummer, % und in den Arbeitsspeicher WM auf diejenigen Speicherstellen überträgt, die mit der im CAR-Speicheradreßregister 38 enthaltenen Adresse beginnen. Nachdem der vollständige Informationsblock übertragen worden ist, erfolgt in einer noch zu beschreibenen Weise eine Anzeige durch den Übertragungskanal CH. Der Schritt 512 ist damit beendet, und die Steuerung des Systems kehrt zum Schritt 500 zurück.
Es sei angenommen, daß während des Schrittes 510 festgestellt wurde, daß im assoziativen Speicher AM keine Wortspeicherbereiche vorhanden sind, in denen sowohl das AL-Bit als auch das R-Bit den Wert 0 hat. In einem solchen Falle geht die Steuerung ä des Systems von Schritt 510 zum Schritt 513 von Fig. 7. Im verwendeten Austauschalgorithmus ist das Hauptkriterium die zuletzt erfolgte Benutzung eines Blockes, während die Änderung eines Blockes nur ein zusätzliches Kriterium darstellt. Wenn daher kein Block vorhanden ist, für welchen die AL- und R-Bits 0 sind, wird ein Block ausgewählt, dessen AL-Bit 1 und dessen R-Bit 0 ist. Da vereinbarungsgemäß eine Rückstellung der R-Bits zu 0 erfolgt, wenn alle R-Bits den Wert 1 angenommen haben, ist stets wenigstens ein Wortbereich im assoziativen Speicher AM vorhanden, dessen R-Bit 0 ist. Der Schritt 513 wird im wesentlichen in der gleichen Weise ausgeführt, wie der oben erläuterte Schritt 510 mit der Ausnahme, daß das Argumentregister 32 anfänglich mit einem 1-Bit im AL-FeId und mit einem
Dockt YO 968 098 10 9 816/1875
-50-0-Bit Im R-FeId geladen wird. Daraufhin wird die Assoziationsoperation ausgeführt, die zur Folge hat, daß die Übereinstimmungsanzeiger 55 in der Steuerschaltung 34 für diejenigen Wortbereiche, die ein 1-Bit im AL-FeId und ein O-Bit im R-FeId aufweisen, in ihrem 1-Zustand verbleiben, während die anderen Übereinstimmungeanzeiger 55 auf O rückgestellt werden.
Vom.Schritt 513 geht die Steuerung des Systems auf Schritt 514 über. Da es möglich ist, daß mehr als ein Übereinstimmungsanzeiger 55 während des Schrittes 513 im 1-Zustand verbleibt, ist der Schritt 514 notwendig, um eine endgültige Entscheidung zu treffen, welcher Block im Arbeitsspeicher WH auszutauschen ist. Die Wortzählerflipflops 98 in der Steuerschaltung 34 werden zur Ausführung des Schrittes 514 in der gleichen Weise benutzt, wie es vorausgehend in Verbindung mit Schritt 511 beschrieben wurde.
Vom Schritt 514 geht das System auf den Schritt 515 über. Da der Block, welcher nun für einen Austausch im Arbeitsspeicher WM ausgewählt worden ist, während seiner Anwesenheit in diesem Speicher verändert wurde, ist es notwendig, diesen Block in den externen Speicher BS (Fig. 9C) rückzuschreiben, bevor ein neuer Block an seine Stelle tritt. Während des Schrittes 515 wird daher eine Rückschreiboperation ausgeführt und der betreffende Block durch den neuen Block ersetzt. Hierzu wird die Arbeitsspeicheradresse des ausgewählten Blockes aus dem zugeordneten Wortspeicherbereich des assoziativen Speichers in das CAR-Speicheradrefiregister 38 übertragen, und die Blocknummer dieses Blockes als Externspeicheradresse aus dem gleichen Wortspeicherbereich des assoziativen Speichers AM in das WAR-Schreiben-Adreßregister 42 übertragen. Die Externspeicheradresse des neuen Blockes, der in den Arbeitsspeicher WM gebracht werden soll, wird in das RAR-Lesen-Adreßregister 40 eingegeben und ein Rückschreiben/Ersetzen-Steuersignal wird dem EingangsanschIuß des Übertragungskanals CH zugeführt. Der Übertragungskanal CH arbeitet dann in der üblichen Weise und führt ein Rückschreiben des Informationsblockes von der ausgewählten Adresse des Arbeits-
Docket YO 968 098 109816/1875
Speichers WM in den externen Speicher BS zu der im Schreiben-Adreßregister 42 befindlichen Adresse aus. Danach liest er den Block im externen Speicher BS, der mit der im Lesen-Adreßregister 40 enthaltenen Adresse beginnt, und überträgt ihn auf die ausgewählte Adresse im Arbeitsspeicher WM. Wenn der vollständige Block in den Arbeitsspeicher WM übertragen worden ist, erzeugt der Übertragungskanal CH ein Ausgangssignal, welches das Ende des Schrittes 515 anzeigt und die Steuerung des Systems zum Schritt 5CXD (Fig. 7) zurückschaltet.
Während des Schrittes 5CX) wird festgestellt, daß der gewünschte Block nun im Arbeitsspeicher WM enthalten ist. Das System fährt daraufhin fort, die Schritte 503, 504 und 505 (Fig. 7) gleichzeitig auszuführen. Im Schritt 503 werden die Blockadresse und das zugeordnete L-Bit aus dem diesem Block entsprechenden Wortspeicherbereich im assoziativen Speicher AM (der Inhalt dieses Wortspeicherbereiches befindet sich nun im MDR-Register 20 von Fig. 9E) in das Erhalten-Register 2001 (Fig. 9F) für eine mögliche spätere Weiterverwendung übertragen. Während des Schrittes 504 wird die Arbeltsspeicher-Blockadresse des angeforderten Blockes aus dem Register 24 (Fig. 9B) in den linken Teil des Speicheradreßregisters 44 (Fig. 9C) übertragen. Zugleich wird die im Register 24 enthaltene Adresse der Information (z.B. ein Informationswort), die innerhalb des betreffenden Blockes von der zentralen Datenverarbeitungseinheit CPU benötigt wird, in den rechten Teil des Speicheradreßregisters 44 übertragen. Mit dem Inhalt des Registers 44 wird daraufhin die Entnahme der von der zentralen Verarbeitungseinheit CPU angeforderten Information aus dem Arbeitsspeicher WM durchgeführt.
Für den im Arbeitsspeicher WM aufgerufenen Block sind verschiedene Aufdatierungsoperationen in dem diesem Block zugeordneten Wortspeicherbereich im assoziativen Speicher AM vorzunehmen. Es handelt sich dabei um Aufdatierungen der AL und R-Felder. Diese Operationen werden während der Schritte 516 bis 520 (Fig. 7) ausgeführt. Während des Schrittes 516 wird das Aufrufbit R des soeben von der zentralen Verarbeitungseinheit aufgeru-
Docket YO 968 098 109816/1875
fenen Blockes auf 1 gesetzt. Dies geschieht durch Eingabe einer binären 1 in das R-FeId des Speicherdatenregisters 20 (Fig. 9E), worauf nur dieses Feld in den dem Block zugeordneten Wortspeicherbereich des assoziativen Speichers AM in der vorausgehend erläuterten Weise eingeschrieben wird.
Vom Schritt 516 geht die Steuerung des Systems zum Schritt 517 über, während welchem der Zustand des Änderungsflipflops 30 (Fig. 9A) abgefragt wird, um zu bestimmen, ob der soeben aufgerufene Block geändert wird. Der Änderungsflipflop 30 wird in den 1-Zustand gestellt am Beginn eines Blockaufrufes, wenn der aufzurufende Block in der zentralen Verarbeitungseinheit verändert, d.h. bearbeitet werden soll. Wenn der Block nicht verändert wird, geht die Steuerung direkt zum Schritt 519 über, während im Falle einer Änderung der Schritt 518 ausgeführt wird. Während des Schrittes 518 wird das AL-Bit des Wortspeicherbereiches im assoziativen Speicher AM des soeben aufgerufenen Blockes auf 1 gestellt. Hierzu wird ein 1-Bit in das AL-FeId des Speicherdatenregisters 20 eingegeben, worauf dieses Feld in den betreffenden Wortspeicherbereich des assoziativen Speichers AM in der oben erläuterten Weise eingeschrieben wird.
Vom Schritt 518 geht die Steuerung zum Schritt 519 über (Fig. 7), der zur Prüfung, ob alle Aufrufbits R im 1-Zustand stehen, vorgesehen ist. Die entsprechende Operation wird ausgeführt, indem das R-FeId des Argumentregisters 32 (Fig. 9E) auf 0 gesetzt wird und eine Assoziationsoperation für dieses Feld im assoziativen Speicher AM vorgenommen wird. Wenn keine Übereinstimmungen gefunden werden, so bedeutet dies, daß alle R-Bits im 1-Zustand stehen. Wie bereits erläutert, sind in diesem Falle alle R-Bits auf 0 zu setzen. Die Steuerung des Systems geht daher bei einer solchen Situation vom Schritt 519 zum Schritt 520 über. Während des Schrittes 520 wird ein Signal T13 zum assoziativen Speicher AM geleitet, das die R-Felder aller Wortspeicherbereiche dieses Speichers zu 0 zurückgestellt. Am Ende des Schrittes 520 wird
Docket YO 968 098 109816/1875
ein Signal MEl über eine Leitung 1002 (Fig. 7 und 9A) zum Eingang eines Tores 2002 (Fig. 9F) geführt, das in den Ausgang des L-Feldes des Halten-Registers 2001 geschaltet ist. Ein Signal auf Leitung 1002 tritt auch dann auf, wenn während des Schrittes 519 festgestellt worden ist, daß nicht alle R-Bits im 1-Zustand stehen. In beiden Fällen geht die Steuerung zum Block 506 (Fig. 6) über, der mit der Prüfung beginnt, ob das L-Bit des aufgerufenen Blockes auf 1 gesetzt worden ist.
In der vorausgehenden Beschreibung wurde das Augenmerk hauptsächlich darauf gerichtet, welche Operationen während der | Hauptschritte 500, 502, 503, 504 und 505 der Fig. 6 und 7 vom dargestellten System ausgeführt werden. Die einzelnen Operationen der Schritte 501 und 506 werden dagegen in einem späteren Abschnitt erläutert in Verbindung mit einigen Anwendungsbeispielen des Systems. Zuvor sollen jedoch noch die Schaltungsteile der Fign. 9F, 9H, 91 und 9K beschrieben werden. Die Flg. 9F zeigt neben dem bereits erläuterten Halten-Register 2001 die Zähler P, U und Q, die die Zählwerte der Anzahl der Blockübertragungen P, der unnötigen Blockübertragungen U und der unbestimmten oder fraglichen Blockübertragungen Q enthalten. Außerdem ist in dieser Figur ein F-Flipflop 2003 angegeben.
Ein A-Register 2005 und ein B-Register 2006 (Fig. 91) dienen zur Speicherung der Variablen A und B. Das Register 2005 ist als Zähler ausgebildet, der stets dann inkrementlert wird, wenn ein neues Intervall in der optimalen Operationsfolge definiert wird. Das Register 2006 wird anfänglich auf 1 gestellt und jeweils bei der Definition eines vollständigen Satzes in der optimalen Folge auf einen neuen Wart eingestellt. In den Fign. 9H und 91 sind Tabellenspeicher 600 und 2007 dargestellt, welche die C- und Ε-Werte aufnennen. Die Tabellenspeicher 600 und 2007 sind Speicher, von denen jeder aehrere Register aufweist, die über Decodierechaltungen 2008 und 200t adreieierbar sind für Werteingaben und Wertaueleiungen. Die Decodierschaltung
Docket YO 968 Of8 1088 16/187E
2008 des Tabellenspeichers 600 wird unter Steuerung eines Y-Registers 2010 eingestellt. Der Inhalt des Registers 2010 adressiert somit die im Speicher 600 enthaltene C-Tabelle. In ähnlicher Weise wird die Tabelle E im Speicher 2007 über die Decodierschaltung 2009 vom Inhalt eines X-Registers 2011 adressiert. Die in den X- und Y-Registern 2010 und 2011 stehenden Werte werden nachfolgend als X- und Y-Zählwerte bezeichnet. Der Ausgang des Tabellenspeichers 600 ist mit einem DEC-Register 2012 verbunden, dessen Inhalt unter bestimmten Bedingungen dekrementiert wird. Wenn dieser Inhalt den Wert 0 erreicht, wird der Inhalt des Y-Registers 2010 zum B-Register 2006 unter Wirkung eines Steuersignales ME25 oder HE55 fibertragen. Vergleichsschaltungen 2013 (Fig. 9H), 2014 und 2015 (Fig. 9K) sind für Vergleichsoperationen zwischen den Werten E, A, B und Y vorgesehen.
Die Fig. 10 zeigt im Detail den Aufbau der Tabellenspeicher 600 und 2007.. Beide Speicher sind in ihrem Aufbau im wesentlichen gleich. Jeder Speicher besteht aus mehreren Registern, deren Anzahl von der Größe des Wertes abhängt, der im Y-Register 2010 bzw. im X-Register 2011 gespeichert werden kann. Die Decodierschaltung 2008 in Fig. 9A weist soviel Ausgangsleitungen auf, wie der zugehörige Tabellenspeicher im Maximum Register besitzen kann. Wenn das Y-Register 210 beispielsweise zur Aufnahme einer 3-stelligen Binärzahl eingerichtet ist, besitzt dl· Decodierschaltung 2008 acht Ausgangeleitungen. Im praktischen Fall· wird, jedoch die Anzahl der Auegangsleitungen größer sein. Der Einfachheit halber sind den Registern im Speicher 600 die Adressen 1, 2, 3 usw. zugeordnet, entsprechend den signifikanten Werten, auf die das Y-Register 2010 eingestellt werden kann. Der Wert 0 ist far die Einstellung dieses Registers ohne Bedeutung. I» Tabellenspeicher E entsprechen die Adressen der darin enthaltenen Register den jeweiligen Blockniaemern, die i» Register X gespeichert werden.
Gea&a Fig. 10 weist der dort dargestellte Tabellenepeicher Docket TO 968 09t 109816/1875
drei Register auf. Die Adressierleitungen sind mit 602 bezeichnet (siehe auch Fig. 9H). Eine dieser Leitungen wird erregt, wenn das hier zugeordnete Register mit Eingangsleitungen 6O4 und mit Ausgangsleitungen 606 des Speichers verbunden werden soll. Wenn eine Leitung 602 signalführend ist, werden Torschaltungen 608, 610 und 612 für einen Signaldurchlaß von der Eingangssammelleitung 604 zu Flipflops 614, 616 und geöffnet. Die letztgenannten Flipflops bilden jeweils ein Register. Außerdem öffnet ein Signal auf einer Leitung 602 Tore 620, 622 und 624, über die die Flipflops 614, 616 und 618 mit der Ausgangssammelleitung 606 des Speichers 600 verbunden wer- % den. Der Tabellenspeicher 2007 ist in der gleichen Weise wie der in Fig. 10 dargestellte Tabellenspeicher 600 aufgebaut; die Zahl der Register im Speicher 2007 kann jedoch von der Zahl der Register im Speicher 600 abweichen.
Nachfolgend sind die zugehörigen Funktionen verschiedener ME-Taktsignale angegeben, die zu dem anhand der Fign. HA bis HD erläuterten Betrieb des in den Fign. iA his 9 K dargestellten Systems Verwendung finden:
MEl: L-Bit im Halten-Register 2001 (Fig. 9F) prüfen.
Wenn L=O, zu ME32 gehen. I
Wenn L=I, zu ME2 gehen.
ME2: F-Flipflop 2003 auf 1 setzen (Fig. 9F). Zähler U dekrementleren.
Argumentmaskenschaltung 46 rückstellen (Fig. 9E). Schreibmaskenregister 47 rückstellen (Fig. 9G). Alle Übereinstimmungsanzeiger 55 über Leitung 54 auf 1 stellen (Fign. 9B und 9D).
Blocknummer vom Halten-Register 2001 (Fig. 9F) zum Blocknummernfeld des Argumentregisters 32 in Fig. 9J übertragen.
Wenn ME2 abklingt, übergang zu ME3.
ME3: Alle Bitstellen des Blocknummernfeldes in der Argu-Docket YO 968 098 10 9 816/1875
miaskenschaltung 46 auf 1 stellen (Fig. 9E) Wenn ME3 abklingt, auf ME4 übergehen.
ME4: AsBOziationsoperation auf die im Argumentregister 32 gespeicherte Blocknummer (Fig. 9J). Wenn ME4 abklingt, übergang zu ME5.
ME5: Ubereinstiramungsanzeiger 55 über Leitungen 64 und 78 abfragen (Fign. 9B und 9D). übereinstimmendes Wort aus AM lesen und in MDR-Register 20 übertragen (Fign. 9D und 9E). übergang zu ME6.
ME6: L-Bit im Register 20 auf 0 rückstellen (Fig. 9E).
L-Bit in der Schreibmaskenschaltung 47 auf 1 stellen (Fig. 9G) .
übergang zu ME7.
ME7: L-Bit aus dem Speicherdatenregister 20 über die Schreibmaskenschaltung 47 in den AM-Wortspeicherbereich einschreiben, für den zuvor eine Übereinstimmung gefunden wurde (Leitungen 64 und 74 in den Fign. 9B und 9D).
übergang zu ME8.
ME8: Argumentmaskenschaltung 46 rückstellen (Fig. 9E). Schreibmaskenschaltung 47 rückstellen (Fig. 9G). Alle Übereinstimmungsanzeiger 55 auf 1 setzen (Leitung 54 in Fig. 9B und 9D). EOL-Flipflop 36 rückstellen (Fig. 9D). übergang zu ME9.
ME9: R'-Bit im Argumentregister 32 auf 1 stellen (Fig. 9J) R1 -Bit in der Argumentmaskenschaltung 46 auf stellen (Fig. 9E) R*-Bit in der Schreibmaskenschaltung 47 auf
stellen (Fig. 9G) Docket YO 968 098 109816/1875
Übergang zu MElO.
MElO: Assoziationsoperation auf das R'-Bit (Flg. 9J). Übergang zu MEIl:
MEIl: uberelnstlroniungsanzelger 55 Über Leitungen 64 und 78 abfragen (Fign. 9B und 9D). übereinstimmendes Wort aus dem assoziativen Speicher AM lesen und in das Speicherdatenregister 20 übertragen (Fig. 9D und 9E) oder, wenn keine Übereinstimmung gefunden wurde, EOL-Flipflop 36 auf 1 setzen. Übergang zu ME12.
ME12: EOL-Flipflop prüfen (Fig. 9D). Wenn Einstellung O ist, übergang zu MEl3. Wenn Einstellung 1 ist, Übergang zu ME27.
ME13: R1-Bit im Speicherdatenregister 20 auf O rückstellen (Fig. 9E).
Blocknummer vom Speicherdatenregister 20 zum X-Register 2011 übertragen (Fign. 9E, 9F und 91). Übergang zu MEl4.
ME14: R1-Bit (jetzt O) in den obersten, eine Übereinstimmung aufweisenden Wortspeicherbereich im assoziativen Speicher AM einschreiben (Leitungen 64 und 74 in den Fign. 9B und 9D). Ausgang der Vergleichsschaltung 2015 über Torschaltung
2016 prüfen, ob E - A (Fig. 9K). Wenn E-A, übergang zu ME8. Wenn E j< A, Übergang zu ME15.
MEl5: Ausgang der Vergleichsschaltung 2014 durch Torschaltung
2017 prüfen, ob E < B (Fig. 9K). Wenn "nein", Übergang zu ME20. Wenn "ja", Übergang zu ME16.
Docket YO 966 o»8 109818/1875
HE16: Q-Zähler Incrementleren (Flg. 9F).
A-Register 2005 inkrementieren (Flg. 91). Obergang zu ME17.
ME17: Inhalt des A-Registers 2005 In das Y-Reglster 2010 (Fign. 91 und 9H). übergang zu ME18.
ME18: Konstantwert (N-I) an die Elngangssammelleltung 604 des Tabellenspeichers 600 anlegen (Fig. 9H). übergang zu MS19.
ME19: Inhalt des A-Registers 2005 an die Eingangssammelleitung 2018 des Tabellenspeichers 2OO7 anlegen (Fig. 91). Übergang zu ME8.
ME20: Inhalt des A-Registers 2OO5 in das Y-Register 2010 fibertragen (Fign. 91 und 9H). Übergang zu ME21.
ME21: Ausgang der Vergleichsschaltung 213 durch Torschaltung 2019 prüfen, ob Y « E (Fig. 9H). Wenn Y » E, Übergang zu ME19. Wenn Yj1E, Übergang zu ME22.
ME22: Ausgang des C-Tabellenspeichers €00 zu» DEC-Regieter 2012 übertragen (Fig. 9H). Übergang zu ME23.
ME23; Dekreeentierung des Inahltes des DEC-Registers 2012 (Fig. 9H). Übergang zu NB24.
ME24: Inhalt des DEC-Registere 2012 an dl« Eingangeleitungen das Tabellenspeicher· «00 anlegen, sowie
Docket YO »68 0»8
109816/1875
durch Decodierschaltung 2020 und Torschaltung 2021 prüfen, ob der Inhalt dieses Registers 0 ist (Fig. 9H).
Wenn DEC = O, übergang zu ME25. Wenn DEC j* O, Übergang zu ME26.
ME25: Inhalt des Y-Registers 2010 in das B-Register 2006 übertragen (Fign. 9H und 91).
übergang zu MEl9.
ME26: Inhalt des Y-Registers 2010 dekrementieren (Fig. 9H). Übergang zu ME21.
ME27: Zustand des F-Flipflops 2003 prüfen (Fig. 9F). Wenn F=O, Übergang zu ME42.
Wenn F^O, Übergang zu ME28.
ME28: A-Register 2005 inkrementieren (Fig. 91). Übergang zu ME29.
ME29: Inhalt des A-Registers 2005 in das Y-Regiccar 2010 übertragen (Fign. 91 und 9H).
Übergang zu ME30.
ME30: Blocknunmer aus dem Halten-Register 2001 in das X-Register 2Ol1 übertragen (Fign. 9F und 91). Übergang zu ME31.
ME31: Inhalt des A-Registers 2005 an die Eingangsleitungen 2018 des E-Tabellenspeichers 2007 anlegen (Fig. 91). Konstantwert (N-I) an die Eingangsleitungen 604 des C-Tabellenspeichers 600 anlegen (Fig. 9H). Übergang zu ME32.
ME32: Argument-Maskenschaltung 46 rückstellen (Fig. 9E). Schreiben-Maskenschaltung 47 rückstellen (Fig. 9E).
DooRet YO 968 098 10g8le/1875
- €0 -
Alle Obereinstimmungsanzeiger 55 auf 1 setzen (Leitung 54 In Fig. 9B und 9D). BlodcnoMMr aus dem Halten-Register 2001 in das Blocknummernfeld des Argumentregisters 32 übertragen (Figo. 9F und 9J). übergang zu MS33.
ME33: Blocknuamernfeld der Argument-Haskenschaltung in jeder Bitstelle eof 1 setzen (Fig. 9E). Übergang zu ME34.
ME 34: Assoziationsoperation auf die in Argument register 32 gespeicherte Blocknummer (Fig. 9J). übergang zu ME35.
ME35: Obereinstimaungsanzeiger 55 abfragen (Leitungen 64 und 78 in den Fign. 9B und 9D). Das übereinstimmende Wort aus dem assoziativen Speicher lesen und in das Speicherdatenregister 20 übertragen (Fign. 9D und 9E). Übergang zu HE36.
ME36: R'-Bit im Speicherdatenregister 20 auf 1 setzen (Fig. 9E).
R'-Bit in der Schreibmaskenschaltung 47 auf setzen (Fig. 9G). Obergang zu ME37.
ME37: R'-Bit (1) aus dem Speicherdatenregister 20 zurück in den AM-ffortspeicherbereich übertragen, für den zuvor eine Übereinstimmung festgestellt wurde (Leitungen 63 und 74 in den Fign. 9B und 9D). Obergang zum Operationsende (Erzeugen eines Impulses auf Leitung 1008 in Fig. 9A, um der zentralen Verarbeitungseinheit CPU anzuzeigen, daß das System für die nächste Speicheranforderung bereit ist).
Docket YO 968 098 10 9 816/1875
HE38 bis
ME41 werden im dargestellten System nicht verwendet.
ME42: Die zu diesem Zeitpunkt angeforderte Blocknummer vom Register 24 in das X-Register 2011 übertragen (Fign. 9B, 9F und 91). übergang zu ME43.
ME43: Ausgang der Vergleichsschaltung 2014 durch Torschaltung 2025 prüfen, ob E < B (Fig. 9K). Wenn "nein", übergang zu ME44. Wenn "ja", übergang zu ME48.
ME44: Inhalt des A-Registers 2005 in das Y-Register 2010 übertragen (Fign. 91 und 9H). übergang zu ME45.
ME45: Ausgang der Vergleichsschaltung 2013 durch UND-Schaltung 2026 prüfen, ob Y « E (Fig. 9H). Wenn Y=E, übergang zu ME47. Wenn Y f E, übergang zu ME51.
ME46 wird im dargestellten System nicht verwendet.
ME47: Zähler U inkrementieren (Fig. 9F). Inhalt des A-Registers 2005 an die Eingangsleitungen 2018 des E-Tabellenspeichers 2007 anlegen (Fig. 91). Wenn ME47 abklingt, Rückkehr zu Schritt 502 des aktuellen Austauschalgorithmus über Leitung 1006 (Fign. 6 und 9A).
Hiermit wird eine Schaltoperation das Taktsignal T16 erzeugenden nonostabilen Impulsgenerator in Taktgeber 198 eingeleitet (Fig. 9A).
ME48: Inhalt des A-Registers 2005 inkrenentieren (Fig. 91). übergang zu NE49.
Docket YO 968 098 10g816/187B
ME49: Inhalt des A-Registers 2005 in das Y-Register 2010 übertragen (Fign. 91 und 9H). Übergang zu ME5O.
ME50: Konstantwert (N-I) an die Eingangsleitungen 604 des C-Tabellenspeichers 600 anlegen (Fig. 9H). Inhalt des A-Registers 2005 an die Eingangsleitungen 2018 des E-Tabellenspeichers 2007 anlegen (Fig. 91). Rückkehr zu Schritt 502 über Leitung 1004 (Fign. 6 und 9A).
Hiermit wird eine Schaltoperation des das Taktsignal T16 erzeugenden monostabilen Impulsgenerators im Taktgeber 198 ausgelöst (Fig. 9A).
ME51: Ausgang des C-Tabellenspeichers 600 in das DEC-Register 2012 übertragen (Fig. 9H). Übergang zu HE52.
ME52: Inhalt des DEC-Registers 2012 dekrementieren (Fig. 9H). Übergang zu ME53.
ME53: Inhalt des DEC-Registers 2012 an die Eingangsleitungen 604 des Tabellenspeichers 600 anlegen (Fig. 9H). Durch die Decodierschaltung 2020 und die Torschaltung 2021 prüfen, ob der Inhalt des DEC-Registers 2012 0 ist (Fig. 9H). Wenn DEC » 0, Übergang zu ME55. Wenn DEC jt 0, Übergang zu ME54.
ME54: Inhalt des Y-Registers 2010 dekrementieren (Fig. 9H). Übergang zu ME55.
ME55: Inhalt des Y-Registers 2010 in das B-Register 2006 übertragen (Fign. 9H und 91). Übergang zu KE56.
Docket YO 968 098
109816/1875
ME56: Arguaentaaskenschaltung 46 rückstellen (Fig. 9E). Schreibmaskenschaltung 47 rückstellen (Fig. 9G). Obereinstinaungsanzeiger 55 über Leitung 54 auf 1 setzen (Fig. 9B und 9D).
EOL-Flipflop 36 rückstellen (Fig. 9D) alle SS-Bits Im assoziativen Speicher AM auf 1 setzen (Fig. 9D). Obergang zu ME57.
ME57: SS-Bit in Arguaentregister 32 auf 1 setzen (Fig. 9J). SS-Bit in der Arguaent-Maskenschaltung 46 auf 1 setzen (Fig. 9S).
SS-Bit in der Schreibmaskenschaltung 47 auf 1 setzen (Fig. 9G).
Obergang zu ME58.
ME58: Assoziationsoperation auf das im Argumentregister 32 gespeicherte SS-Bit (Fig. 9J).
Obergang zu ME59.
ME59: Übereinstimmungsanzeiger 55 über Leitungen 64 und 78 abfragen (Fign. 9B und 9D).
Oberstes übereinstimmendes Wort aus dem assoziativen Speicher AM in das MDR-Speicherdatenreigster 20 über* tragen oder, wenn kein übereinstimmendes Wort gefunden wurde, EOL-Flip-Flop 36 auf 1 stellen (Fign. 9D und 9E).
Obergang zu ME6O.
ME6O: Zustand des EOL-Flipflop 36 prüfen. Wenn O, übergang zu ME61.
Wenn 1, Obergang zu ME47.
ME61: Blocknummer des übereinstimmenden Wortes aus dem MDR-Speicherdatenregister 20 in das X-Register 2011 übertragen (Fign. 9Ef 9F und 91). Obergang zu ME62.
Docket YO 968 098
109816/1875
ME62: Ausgang der Vergleichsschaltung 2014 durch UND-Schaltung 2027 prüfen, ob E < B (Flg. 9K). Wenn "ja", übergang zu ME63.
Wenn "nein", übergang zu ME65.
ME63: SS-Bit im Speicherdatenregister 20 auf O rückstellen (Pig. 9E).
L-Bit im Speicherdatenregister 20 auf 1 setzen (Fig. 9E).
L-Bit in der Schreibmaskenschaltung 47 auf 1 setzen (Fig. 9G).
Obergang zu ME64.
ME64: Inhalt des MDR-Speicherdatenregisters 20 über die Schreibmaskenschaltung 47 in den assoziativen Speicher AH einschreiben (Leitungen 64 und 74 in den Fign. 9B und 90).
Übergang zu ME57.
ME65: SS-Bit im Register 20 auf O rückstellen (Fig. 9E). L-Bit in der Schreibmaskenschaltung 47 auf O rückstellen (Fig. 9G) .
übergang zu ME64.
ME66: F-Flipflop 2003 auf 0 rückstellen (Fig. 9F). Zähler P inkrementieren (Fig. 9F) übergang zu ME8.
ME66 wird nur dann aktiviert, wenn der angeforderte Block nicht im Arbeitsspeicher WM steht (Fign. HA und 6).Zu dieser Zeit ist eine Aufdatierungsoperation gemäß Schritt 501 von Fig. 6 auszuführen.
Hiermit ist die Aufzählung der ME-Funktionen, die schematisch auch in den Fign. HA bis HD dargestellt sind, beendet.
Das in den Fign. 9A bis 9K dargestellte System 1st zum Betrieb Docket YO 968 098 109816/1878
in der Einfachprogramm-Betriebsart gedacht. Die Erfindung ist jedoch nicht auf diese Betriebsart beschränkt. Wenn eine Speicheranforderung durch die zentrale Verarbeitungseinheit CPU erzeugt wird, werden das Programm-Kennzeichen ID und die Adresse des gewünschten Blockes über Leitungen 22 zum Register 24 übertragen (Fign. 9A und 9B). Gleichzeitig damit wird ein Signal von der zentralen Verarbeitungseinheit CPU entweder zur Leitung 26 oder zur Leitung 28 gesendet, um den Änderungsflipflop 30 entsprechend einzustellen. Der Flipflop 30 wird in den 1-Zustand gebracht, wenn eine Änderung des angeforderten Blockes beabsichtigt ist, und andernfalls im O-Zustand belassen. Darauf- | hin legt die zentrale Verarbeitungseinheit CPU ein Signal an die Startleitung 100 an, welches durch eine ODER-Schaltung 252 und über eine Leitung 254 eine Umschaltoperation des das Taktsignal TO erzeugenden monostabilen Impulsgenerators im Taktgeber 198 auslöst, wodurch ein Operationszyklus des Systems beginnt.
Erstes Anwendungsbeispiel (Fign. 4A, 4B und 12A bis 12L) Dieses Beispiel umfaßt eine sogenannte L-Routine, die durch die Schritte ME55 bis ME65 (Fign. HB und HD), ME2 bis ME7 (Fig. HA) und ME28 bis ME31 (Fign. HA und HC) gekennzeichnet ist. Die L-Routine wird am Ende dieses Anwendungsbeispiels wirksam.
Die Blockaufruffolge dieses Beispiels ist die in den Fign. 4A und 4B angegebene:
BLl, BL2, BL3, BL4, BL5, BL2, BL4 (ändern), BLl, BL6, BLl, BL2, BL4.
Diese Aufruffolge ist in größerem Detail in den Fign. 12A : s 12L dargestellt. Als erster Schritt der Folge wird der Block BLl durch die zentrale Verarbeitungeeinheit CPU aufgerufen, wobei festgestellt wird, daß dieser Block nicht in Arbeitsspeicher WH enthalten ist, der im Anfangszustand als leer angenommen werden soll. Der Block BLl muß daher vom externen Speicher BS in den Arbeitsspeicher WM gebracht werden. Die Operationen, die in diesem Zusammenhang von Bedeutung sind,
Docket YO 968 098 1 09816/ 1875
2ΌΑ7062
beginnen bei Schritt ME66 (Fig. 11A) , der darin besteht, daß der Zähler P von O auf 1 inkrementiert wird (Fig. 12A). Daraufhin werden die Schritte ME8 bis ME12 ausgeführt, um zu bestimmen, ob irgendeine Aufdatierungsoperation notwendig ist, wie durch die Anwesenheit von R*-Bits im assoziativen Speicher AH angegeben wird. Im obigen Falle sind entsprechend des angenommenen leeren Arbeitsspeichers alle R'-Bits in ihrem O-Zustand, weshalb die Operation vom Schritt ME12 zum Schritt ME27 (Fig. HA) übergeht und von dort zum ME42 (Fig. HB) weitergeleitet wird, da der F-Flipflop 2003 während des Schrittes ME66 auf 0 gesetzt worden ist. Die Nummer des angeforderten Blockes BLl wird zum X-Register 2011 übertragen, über welches der E-Tabellenspeicher 2007 entsprechend dem Block BLl adressiert wird. Das B-Register 2006 ist anfänglich auf 1 eingestellt worden, wie oben erläutert, und da der Ε-Wert des Blockes BLl am Anfang 0 ist, ist E zu dieser Zeit kleiner als B. Das Resultat der im Schritt ME43 ausgeführten Testoperation ist demzufolge "ja". Hieraus resultiert die Operationsfolge der Schritte ME48 bis ME50, durch die das A-Register 2005 von 0 zu 1 inkrementiert wird und der neue Inhalt dieses Registers zum Y-Register 2010 übertragen wird, um die C-Tabelle 600 mit 1 zu adressieren. Daraufhin wird der Wert N-I, der im vorliegenden Falle aufgrund der angenommenen Blockspeicherkapazität von drei des Arbeitsspeichers WM den Wert 2 hat, in die C-Tabelle 600 als endgültiger Wert für das Register der Adresse 1 eingegeben. Der Inhalt des A-Registers 2005 wird daraufhin an die Eingangsleitungen 2Ol8 der E-Tabelle 2007 angelegt, wodurch eine Speicherung eines E-Wertes 1 in das dem Block BLl zugeordnete Register dieser Tabelle erfolgt. Das System ist nun bereit für die Ausführung der eigentlichen Blockeingabeoperation.
Die Blockspeicherpositionen im Arbeitsspeicher WM sind in der gleichen Reihenfolge angeordnet wie die ihnen zugeordneten Wortspeicherbereiche im assoziativen Speicher AN. Beim anfäng lichen Laden des Arbeitsspeichers WH ersetzt jeder neueingegebene Block einen aus lauter Nullen bestehenden Inhalt in der ausgewählten Speicherposition. In der Regel wird jedoch die ausge-Dook.t YO 968 098 l09816/187B
wählte Speicherposition bereits einen Informationsblock enthalten, der zu einem früheren Zeitpunkt eingegeben worden ist, so daß der neueinlaufende Block diesen älteren Block überschreibt. Im vorliegenden Falle wird der Block BLl in die zweite Adresse oder Speicherposition des Arbeitsspeichers WM eingeschrieben, und die entsprechende Blocknummer des Blockes BLl wird in den ' dieser Adresse bzw. Speicherposition zugeordneten Wortspeicher--' bereich des assoziativen Speichers AM eingeschrieben. Der Grund, warum in diesem Falle die zweite Adresse für die Blockeingabe ausgewählt worden ist, besteht darin, daß der Wortzähler 98 des assoziativen Speichers WH anfänglich auf den obersten bzw. λ ersten Wortspeicherbereich eingestellt ist, wodurch der nächstfolgende Wortspeicherbereich (zweiter Wortspeicherbereich) adressiert wird. Mach dem Einschreiben in diesen Wortspeicherbereich wird der Wortzähler 98 auf die entsprechende zweite Adresse weitergeschaltet, um anzuzeigen, daß der Wortspeicherbereich dieser Adresse nun gefüllt ist.
Nachdem der angeforderte Block BLl in den Arbeitsspeicher WM eingegeben worden ist, führt das System erneut eine Prüfung durch, ob der angeforderte Block nun im Arbeitsspeicher enthalten ist (Operationsflußleitung 1007 in Fign. 6 und 7}. Zu dieser Zeit ist natürlich die Antwort "ja", und es werden die in den Schritten 503, 504, 505 und 506 (Fig. 6) angegebenen Operationen \ eingeleitet. Der Block BLl wird im Arbeitsspeicher durch die zentrale Verarbeitungseinheit CPU aufgerufen, und die R- und AL-Bits des dem Block BLl zugeordneten Arbeitsspeicherbereiches im assoziativen Speicher AM werden auf ihre entsprechenden Werte eingestellt, die in diesem Falle durch die Kombination R=I
und AL = 0 gegeben sind, da der aufgerufene Block nicht geändert werden soll. Das dem Block BLl zugeordnete R'-Bit wird ebenfalls in den 1-Zustand gestellt. Alle diese Operationen sind in Fig. 12A veranschaulicht, die jeweils den anfänglichen und den endgültigen Zustand des assoziativen Speichers AH und der verschiedenen Tabellen und Register des Systems für die betreffende Operationsphase darstelIt.
1 09816/187 b Docket YO 968 098
Der nächste Informationsblock, der von der zentralen Verarbeitungseinheit CPU angefordert wird, ist im Beispiel der Block BL2. Die Operationsfolge ist der vorausgehend in Bezug auf Block BLl beschriebenen sehr ähnlich. Die Fig. 12B zeigt die Operationen, die erfolgen, wenn der Block BL2 aufgerufen wird. Demzufolge wird der Zähler P von 1 auf 2 weitergeschaltet,, und der Inhalt des A-Registers 2005 wird von 1 auf 2.inkrementiert. Dem Block BL2 ist ein Ε-Wert von 2 zugeordnet, der dem neuen Α-Wert entspricht. Ein C-Wert von N-I oder 2 wird in das Register der zweiten Adresse in der C-Tabelle 600 eingegeben. Die R- und R'-Bits, die dem Block BL2 zugeordnet sind, werden auf 1 eingestellt.
Die Flg. 12C gibt die Operationen an, die ausgeführt werden, wenn der Block BL3 angefordert wird, der zur Zeit der Anforderung ebenfalls nicht im Arbeitsspeicher AM enthalten ist. Der Zählstand des Zählers P wird von 2 auf 3 weitergeschaltet, während der Α-Wert ebenfalls von 2 auf 3 inkrementiert wird. Ein E-Wert von 3 wird dem Block BL3 zugeordnet. In das Register der dritten Adresse der C-Tabelle 600 wird ein C-Wert von 2 eingegeben. Der Block BL3 wird in die erste Adresse des Arbeitsspeichers WN eingespeichert. Das ihm zugeordnete R'-Bit wird auf 1 gesetzt. Das zugeordnete R-Bit wird nur momentan auf 1 eingestellt. Da bei einer 1-Einsteilung aller R-Bits im assoziativen Speicher eine automatische Rückstellung dieser Bits auf O erfolgt, wird auch das R-Bit des Blockes BL3 sofort wieder gelöscht. Die Fig. 12C zeigt das Resultat dieser Operation anhand der endgültigen Einstellungen R=O für die R-BItstellen im assoziativen Speicher AM.
Die Operationen, die während der Intervalle 4 und 5 der Aufruffolge von Fig. 4A ausgeführt werden, sind in den Fign. 12D und 12E veranschaulicht. Da diese Operationen den vorausgehend in Verbindung mit den Intervallen 1 bis 3 beschriebenen sehr ähnlich sind, wird auf eine detaillierte Beschreibung verzichtet.
Während des Intervalles 6 der Aufruffolge von Fig. 4A tritt Docket YO 968 098 η Q98I 6/1875
eine 'andere Operations folge auf. Dies ist nämlich der Fall, wenn der aktuelle Austauschalgorithmus einen Informationsblock (BL2) vom externen Speicher BS holen muß, der erst vor kurzem im Arbeitsspeicher WM ausgetauscht worden ist. Die entsprechende
Operation ist in Fig. 12F veranschaulicht. Der Zählstand des Zählers P wird von 5 auf 6 weitergeschaltet (Schritt HE66 in Fig. 11A). In diesem Falle wird jedoch keine Inkrementierung
des Inhaltes des A-Registers 2005 vorgenommen; der Inhalt des
Registers bleibt vielmehr auf dem Wert 5 stehen. Dies ergibt
sich aus dem Test gemäß Schritt ME43 (Fig. HB). Der Wert B ist zu diesem Zeitpunkt noch 1, aber der Wert E des gerade i angeforderten Blockes BL2 hat den Wert 2. Dieser Wert E wurde dem Block BL2 zugeordnet, als er vorausgehend im Intervall 2 aufgerufen wurde, wie es die Fig. 12B veranschaulicht. Unter diesen Umständen -liefert daher die Testoperation des Schrittes
ME43 das Resultat "nein".
Der als nächster folgende Schritt ME44 sieht die übertragung des Inhaltes des A-Registers 2005 in das Y-Register 2010 vor, wodurch die fünfte Adresse der C-Tabelle 600 adressiert wird. Da der gegenwärtige Y-Wert (5) nicht gleich dem gegenwärtigen I-Wert (2) ist, resultiert die im Schritt ME45 (Fig. HB) ausgeführte Testoperation in einem "nein"-Ergebnis, wodurch eine Wiederholung der Schritte ME51 bis ME54 bewirkt wird, bis ' der Wert Y im Register 2010 auf den Wert E reduziert worden ist. Hierbei werden die C-Werte in den Registern der Adressen 5, 4 und 3 des Tabellenspeichers 600 jeweils von 2 auf 1 dekrementiert. Mit dem nun vorliegenden Wert Y, der dem Wert E gleicht, wird im Schritt ME45 das Ergebnis "ja" erhalten, und die Steuerung des Systems geht zum Schritt ME47 über (Fig. HD). Der Zähler U wird von 0 auf 1 inkrementiert zur Anzeige, daß eine unnötige übertragung des Blockes BL2 durch den aktuellen Austauschalgorithmus vorgenommen wurde. Der E-Wert des Blockes BL2 wird von 2 auf den laufenden A-Wert 5 aufdatiert. Der Α-Wert entspricht hierbei der Zahl der Intervalle in der optimalen Operationsfolge, gemäß welcher der
Docket YO 968 098
109816/1875
- 7O -
gegenwärtig angeforderte Block BL2 aufgerufen worden wäre. In der optimalen Operationsfolge (Fig. 4) würde somit der Block BL2 während des Intervalles 5 und nicht während des Intervalles wie in der aktuellen Operationsfolge aufgerufen werden. Die Abweichung zwischen diesen beiden Intervallnummern wird durch die Einstellung des Zählers U auf den Wert 1 reflektiert.
Der .nächste von der zentralen Verarbeitungseinheit CPU aufgerufene Block ist der Block BL4, der eich gegenwärtig im Arbeitsspeicher HM befindet und der nicht ausgetauscht wurde, seit er während des Intervalles 4 in diesen Speicher eingegeben worden ist. Für das erläuterte Anwendungsbeispiel sei angenommen, daß der Block BL4 bei seinem Aufruf geändert werden soll. Bei der Aufdatierungsoperation für die dem Block BL4 zugeordneten R- und AL-Bits gemäß Schritt 505 (Fig. 6) und den Schritten 516 bis 520 (Fig. 7) werden die R- und AL-Bits beide auf 1 eingestellt. Diese Operation kommt auch In Fig. 12G zum Ausdruck. Die Steuerung geht dann zu Schritt 5O6 (Fig. 6) Ober, wo im einzelnen die mit MEl und ME32 bis ME37 in den Fign. HA und HC bezeichneten Schritte zur Ausführung können. Als letzter Schritt dieser Operationsfolge wird das R*-Bit, das dem Block BL4 zugeordnet ist, auf 1 gesetzt. Der assoziative Speicher AM enthält nun zwei Worte, deren R'-Bits im 1-Zustand stehen, nämlich die in den Wortbereichen der Blöcke BL2 und BL4 stehenden Worte.
Der folgende Teil der Operation (Intervall 7 der aktuellen Folge von Fig. 4B) erläutert die Steuerfunktion einer Anzahl gespeicherter R'-Bits für die Aufdatierungeoperationen und auch die Definition eines vollständigen Aufrufsatzes. Diese Operationsphase wird eingeleitet, wenn die zentrale Verarbeitungseinheit den Block BLl anfordert, der zu dieser Zelt nicht im Arbeitsspeicher WM enthalten 1st. Wie die Fig. 12H in Verbindung mit Fig. 4B zeigt, besteht die erste Operation, die auf diese Anforderung hin ausgeführt wird, In der Rückstellung des F-Flipflops 0 und in der Inkxeeentierang des
Docket YO 968 098 1Q9816/1875
Zählers P von 6 auf 7 (Schritt ME66 in Fig. 11A). Als nächstes wird der assoziative Speicher AM für eine Suchoperation nach allen Wortbereichen, deren R*-Bits eine 1 enthalten, eingestellt. Wie in Fig. 12H angegeben, haben die Wörter der Blöcke BL2 und BL4 im ersten und zweiten Wortspeicherbereich des assoziativen Speichers AN R1-Bits, die gleich 1 sind. Der assoziative Speicher führt die Suchoperation gemäß den Schritten ME8 und folgende aus und liest das oberste übereinstimmende Wort in das Speicherdatenregister 20 ein (Fig. 9E). Im vorliegenden Falle ist das oberste übereinstimmende Wort das dem Block BL2 entsprechende Wort. Die Blocknummer des Blockes Bl2 wird in das | X-Register 2O11 (Fig. 91) übertragen, um die E-Tabelle 2007 auf das dem Block BL2 entsprechende Register zu adressieren (Fig. 12H). Gleichzeitig wird das R'-Bit des Blockes BL2 auf 0 rückgestellt, ua es seinen Zweck erfüllt hat (Schritte MEl3 und ME14 in Fig. 11C).
Der dem Block BL2 gegenwärtig zugeordnete Ε-Wert ist 5, also gleich dem gegenwärtig ebenfalls auf 5 stehenden Α-Wert. Als Folge dieses ümstandes verzweigt die Steuerung von Schritt ME14 (Fig. lic) zurück zum Schritt HE8, womit eine neue Suchoperation im assoziativen Speicher nach zusätzlichen Worten, deren R'-Bits 1 sind, eingeleitet wird. Das einzige derartige im assoziativen Speicher enthaltene Wort ist das dem Block BL4 züge- I ordnete Wort. Die Blocknummer von BL4 wird demzufolge in das X-Register 2011 übertragen, um das diesem Block zugeordnete Register in der E-Tabelle 2007 zu adressieren. Der gegenwärtige Ε-Wert des Blockes BL4 ist 4, d.h. kleiner als der gegenwärtige Wert 5 von A. Die Steuerung verzweigt somit von Schritt MEl4 (Fig. lic) zu Schritt ME15, wo ein zusätzlicher Test durchgeführt wird, um zu bestimmen, ob der Wert E kleiner als der Wert B ist. Im vorliegenden Falle ist der Ε-Wert des Blockes BL4 gleich 4, und der laufende B-Wert ist 1, so daß ein "nein"-Resultat eine Verzweigung vom Schritt ME15 zum Schritt ME20 bewirkt, gemäß dem der Inhalt des A-Registers 2005 zum Y-Register 2O1O übertragen wird, um das fünfte Register der
Docket YO 968 098 109816/1875
C-Tabelle 600 zu adressleren (Fig. 12H). Im Schritt ME21 wird ein Test durchgeführt, um zu bestimmen, ob der gegenwärtige Wert im Y-Register 2010 gleich dem gegenwärtigen Ε-Wert ist. Da E des Blockes BL4 den Wert 4 hat, während der gegenwärtige Y-Wert 5 ist, liefert dieser Test ein "nein"-Resultat, das eine Verzweigung der Steuerung zum Schritt ME22 zur.. Folge hat. Als nächstes werden nacheinander die Schritte ME22 bis ME25 durchlaufen. Hierbei wird der C-Wert (1) auf der fünften Adresse der Tabelle 600 in das DEC-Register 2012 übertragen und dort zu 0 dekrementiert. Hierdurch wird während der Abtastung der Torschaltung 2021 im Schritt ME24 angezeigt, daß ein vollständiger Satz Blockaufrufe vorliegt. Der Inhalt des Y-Registers 2010 wird daraufhin in das B-Register 2006 tibertragen (Schritt ME25), wodurch der B-Wert von 1 auf 5 erhöht wird.
Die Steuerung des Systems geht nun vom Schritt ME25 (Fig. HC) zurück zum Schritt MEl9, durch den der Inhalt des A-Registers 2005 zur E-Tabelle 2007 übertragen wird, womit der Ε-Wert des Blockes BL4 auf 5 erhöht wird. Alle drei zu diesem Zeitpunkt im Arbeitsspeicher WM enthaltenen Blöcke BL2, BL4 und BL5 haben damit Ε-Werte von 5, die dem B-Wert des gleichen Zeitpunktes entsprechen. Im Intervall Nr. 5 der optimalen Folge von Fig. 4A wurde somit ein vollständiger Satz von Blockaufrufen definiert.
Die Steuerung schreitet nun von Schritt MEl9 zurück zum Schritt ME8 (Fig. HA) , um eine neue Suchoperatiom im assoziativen Speicher AM einzuleiten nach weiteren Worten, deren R1-Bits gleich 1 ist. Da kein weiteres derartiges Wort vorhanden ist, wird im Schritt ME12 ein "nein"-Ergebnis erhalten, worauf die Steuerung zum Schritt ME27 verzweigt.
Da der F-Flipflop 2003 auf 0 steht, verzweigt die Steuerung wiederum zu Schritt ME42 (Fig. HB) , wo die Blocknummer des angeforderten Blockes BLl zum X-Register 2011 übertragen wird. Zu dieser Zeit ist der Ε-Wert von BLl gleich 1 und
Docket Ϊ0 968 098 109816/1875
daralt kleiner als der neue B-Wert 5. Der Schritt ME43 liefert daher ein "ja"-Resultat, wodurch die Steuerung zum Schritt ME48 verzweigt.
Die Schritte ME48 bis ME50 sind Aufdatierungsoperationen, durch die die Einstellung des A-Registers 2005 von 5 auf 6 inkreraentiert wird, der M-I-Wert (2) in das sechste Register der C-Tabelle 600 eingegeben wird und der Α-Wert von 6 in die E-Tabelle 2007 als neuer Wert E des Blockes BLl eingegeben wird. Damit sind alle Aufdatierungsoperationen der Variablen A, C und E sowie der vorausgehend angepaßten Varaiblen P und U ausgeführt, und die Steuerung geht nun zum Schritt 502 (Fig. 6) , über, wo die eigentliche Blockaustauschoperation vorgenommen wird.
Aus der Aufteilung des Schrittes 502 in die zu diesem Schritt gehörenden Teilschritte 510 bis 515 (Fig. 7) ist ersichtlich, daß der Wortzähler 98 von seiner gegenwärtigen Einstellung auf das nächste Wort mit einer Bitkombination 0-0 für die AL- und R-Bits eingestellt wird (Schritt 511). Wie die Fig. 12H zeigt, erfüllt das zweite Wort im assoziativen Speicher AM diese Bedingung nicht, da seine AL- und R-Bits beide auf 1 stehen. Der Wortzähler 98 wird daher von der ersten Wortposition auf die dritte Wortposition weitergeschaltet, in welcher die AL- und R-Bits ihren anfänglichen O-Zustand einnehmen. Der Austausch- % algorithmus bewirkt daraufhin, daß der neuangeforderte Block BLl auf die dritte Adresse des Arbeitsspeichers WM eingeschrieben wird und den vorher dort gespeicherten Block BL5 ersetzt. Die Einstellung des assoziativen Speichers AM nach dieser Operationsphase 1st daher so, daß die Blocknummern BL2, BL4 und BLl im ersten, zweiten und dritten Wortspeicherbereich des assoziativen Speichers enthalten sind. Die Steuerung kehrt daraufhin zum Schritt 500 (Fig. 7) zurück.
Da der angeforderte Block BLl nun im Arbeitsspeicher WM enthalten ist, wird ein "ja"-Ausgang im Schritt 500 erzeugt, was
Docket YO 968 098 109816/1875
eine Ausführung der Schritte 503, 504, 505 und 506 bewirkt. Im Schritt 505, der gemäß Fig. 7 in die Teilschritte 516 bis 520 aufgeteilt ist, wird das R-BIt des Blockes BLl auf 1 gesetzt zur Anzeige, daß der Block BLl aufgerufen worden ist. Ebenso wird das R'-Bit des Blockes BLl auf 1 gesetzt (Schritt 506 von Fig. 6).
Als nächstes veranlaßt die zentrale Verarbeitungseinheit CPD eine neue Blockanforderung, die sich auf den Block BL6 bezieht, der sich zu diesem Zeitpunkt nicht im Arbeitsspeicher WM befindet. Die in Verbindung mit dieser Anforderung auftretenden Operationen sind in Fig. 121 dargestellt. Der Zähler P wird von 6 auf 7 weitergeschaltet, und der Wert A wird von 6 auf erhöht. Der Block BL6 wird auf die erste Adresse des Arbeitsspeichers WM übertragen und ersetzt dort den Block BL2. Der Block BL6 wird daraufhin im Arbeitsspeicher aufgerufen, und sein R'-Bit wird auf 1 gesetzt. Der Ε-Wert von BL6 wird von 0 auf 7, den gegenwärtigen Α-Wert, erhöht.
Die zentrale Verarbeitungseinheit CPU fordert nun den Block BLl an, der sich zu diesem Zeitpunkt im Arbeitsspeicher WM befindet. Dieser Block wird daher im Arbeitsspeicher aufgerufen. Eine Änderung der Werte P und A tritt nicht ein. Das R'-Bit des Blockes BLl wird auf 1 gesetzt, und ebenso wird das R-Bit des gleichen Blockes auf 1 gesetzt, wie aus Flg. 12J ersichtlich ist.
Die zentrale Verarbeitungseinheit CPU fordert nun den Block BL2 erneut an (Fig. 12K). Es sei daran erinnert, daß der Block BL2 zu der Zeit, als der Block BL6 in den Arbeitsspeicher WM eingegeben wurde, ausgetauscht worden ist (Fig. 121). Der Block BL2 muß daher zurück in den Arbeitsspeicher gebracht werden. Dieser enthält zur Zeit die Blöcke BL6, BL4 und BLl in der aus Flg. 12K ersichtlichen Reihenfolge. Die R'-Bits von BL6 und BLl befinden sich im 1-Zustand. Wenn daher der assoziative Speicher AM nach Wörtern mit R' » 1 durchsucht wird
Docket YO 968 098 109816/1875
(Schritte ME8 bis ME12 in Fig. 11A), werden die Blöcke BL6 und BLl gefunden. Da der Ε-Wert des Blockes BL6 gleich dem laufenden A-Wert 7 ist, bleibt die Oberprüfung des Blockes BL6 ohne weiteren Einfluß auf den derzeitigen Zustand des Systems. Die Operation kehrt vom Schritt ME14 (Fig. lic) zum Schritt ME8 (Fig. HA) zurück.
Beim erneuten Durchsuchen des assoziativen Speichers AM (Schritt MElO) wird der Wortbereich des Blockes BIl ermittelt.
In diesem Falle wird festgestellt, daß der E-Wert 6 von BLl nicht gleich dem laufenden A-Wert 7 ist. Die Operation verzweigt daher vom Schritt ME14 (Fig. HC) zum Schritt ME15, von wo sie in der Folge die Schritte ME2O bis ME24 durchläuft. Im Verlaufe dieser Operationsfolge wird der C-Wert für die Position 7 in der C-Tabelle 6OO von 2 auf 1 reduziert (Fig. 12K). Die Operation geht dann über die Schritte ME26 und ME21 zum Schritt MEl9, wo der Ε-Wert des Blockes BL2 von 5 auf 7, den gegenwärtigen A-Wert, erhöht wird. Die Steuerung kehrt nun zum Schritt ME8 (Fig. HA) zurück und geht letztlich zum Schritt ΜΞ12 über.
Da zu diesem Zeltpunkt keine weiteren Wortspeicherbereiche im assoziativen Speicher AH enthalten sind, deren R'-Bits auf stehen, schreitet die Steuerung über Schritt ME27 zum Schritt ME42 weiter.
Im Schritt ME42 wird die Blocknummer B12 zum X-Register 2011 übertragen und damit die zweite Registerstelle der E-Tabelle 2007 adressiert. Der laufende E-Wert 5 des Blockes BL2 ist gleich dem laufenden B-Wert 5, so daß bei Schritt ME43 die Steuerung zum Schritt ME44 (Fig. HB) verzweigt. Der A-Wert 7 wird zum Y-Register 2010 übertragen, wodurch das siebte Register des C-Tabellenspeichers 600 adressiert wird. Der C-Wert dieses Registers steht bereits auf 1, wie oben erläutert wurde. Die erneute Dekrementierung dieses Wertes im Schritt ME52 führt daher zu einem O-Wert. Damit liegt eine Situation vor, die von den vorausgehend beschriebenen Operationen insofern abweicht, als nach Abtastung der Torschaltung 2022 (Fig. 9H)
Docket YO 968 O98 109816/1875
im Schritt ME53 eine Verzweigung zum Schritt ME55 erfolgt, wodurch eine neue Routine aufgerufen wird, welche die SS- und L-Bits benutzt.
Als erster Schritt dieser Routine (ME55) wird die Einstellung des Y-Registers 2010 (Wert 7) in das B-Register 2006, übertragen. Hierdurch wird der B-Wert von 5 auf 7 erhöht. Daraufhin werden im Schritt ME56 alle SS-Bits im assoziativen Speicher AM auf 1 gesetzt als Vorbereitung für eine seriale Suchoperation über alle Wortspeicherbereiche des assoziativen Speichers. Für jedes übereinstimmende Wort, d.h. für jedes Wort, dessen SS-Bit gleich 1 ist, werden die Schritte ME57 bis ME61 ausgeführt, beginnend mit dem obersten Wortspeicherbereich. Im vorliegenden Falle ist dieser der Wortspeicherbereich des Blockes BL6. Da der E-Wert 7 des Blockes BL6 gleich dem neuen Wert von B ist, besteht die sich aus diesem Test ergebende Aktion lediglich darin, daß das SS-Bit im Wortbereich dieses Blockes auf 0 rückgestellt wird (Schritte ME65 bis ME64).
Die Steuerung kehrt nun zum Schritt ME57 zurück, um eine neue Suchfolge zu beginnen. Das nächste in der gegenwärtigen serialen Suchoperation zu behandelnde Wort ist das dem Block BL4 zugeordnete Wort. Es sei daran erinnert, daß der Block BL4 aufgrund seines Änderungsstatus im Arbeitsspeicher WM behalten wurde, seit er letztmalig während des IntervalIes 6 der aktuellen Aufruffolge aufgerufen wurde, während er andernfalls zu dieser Zeit ausgetauscht worden wäre. Der Block BL4 hat gegenwärtig einen Ε-Wert von 5, der kleiner ist als der neue B-Wert 7. Der im Schritt ME62 ausgeführte Test (Fig. HD) liefert daher ein "ja"-Resultat, das eine Verzweigung zu den Schritten ME63 und ME64 verursacht, in welchen das L-Bit des dem Block BL4 zugeordneten Wortspeicherbereiches im assoziativen Speicher AM auf 1 gesetzt wird, wie es aus Fig. 12K zu ersehen ist.
Das letzte innerhalb der gegenwärtigen serialen Suchoperation zu behandelnde Wort ist das des Blockes BLl. Da der E-Wert
Docket YO 968 098 109816/1875
20A7062
7 des Blockes BLl dem laufenden Wert B gleicht, liefert der Test ME62 ein "nein"-Resultat, das keine weitere Aktion zur Folge hat. Die Steuerung geht über die Schritte ME65, ME64 und ME57 bis ME60 zum Schritt HE47 über, wo der Zählwert U für die unnötigen Übertragungen von 1 zu 2 inkrementiert wird. Hierdurch wird der Umstand reflektiert, daß BL2 durch den aktuellen Austauschalgorithmus in den Arbeitsspeicher WH zurückübertragen werden mußte, während der optimale Austauschalgorithmus ihn ohne zwischendurch erfolgten Austausch im Arbeitsspeicher behalten haben würde. Ein neuer A-Wert 7 wird nun zur E-Tabelle 2007 übertragen, wodurch der Ε-Wert des Blockes BL2 von 5 auf 7 erhöht wird. Der Arbeitsspeicher ist nun mit lauter g Ε-Werten gefüllt, deren Wert 7 ist. Dies bedeutet, daß im Intervall 7 der optimalen Folge alle drei dieser Blöcke aufgerufen worden sind. Es liegt daher ein vollständiger Satz von Blockaufrufen vor, was dadurch zum Ausdruck kommt, daß der Wert B auf 7 gesetzt worden ist.
Als Schlußphase der betrachteten Blockaufruffolge wird nun der Block BL4 aufgerufen. Aufgrund seines Änderungsstatus wurde es diesem Block durch den aktuellen Austauschalgorithmus gestattet, im Arbeitsspeicher WH zu verbleiben, wenn er entsprechend dem optimalen Austauschalgorithmus hätte ausgetauscht werden sollen. Der optimale Austauschalgorithmus würde den Block BL4 während des Intervalles A =» 7 ausgetauscht haben. * Diese Situation wird durch das Effektivitätsmeßverfahren der Erfindung in Form eines Aufrufes einer besonderen Aufdatierungsoperation berücksichtigt, deren Details nachfolgend beschrieben werden.
Eine Anforderung der zentralen Verarbeitungseinheit CPU nach einem Block im Arbeitsspeicher, dessen L-Bit zu dieser Zeit im 1-Zustand ist, hat zur Folge, daß die Steuerung des Systeme über den Schritt HEl zu den Schritten HE2 und HE3 übergeht, wo der F-Flipflop 2003 auf 1 gesetzt wird und der Zähler U um 1 dekrementiert wird. Durch letztere Operation wird angezeigt,
Docket YO 968 098 109816/1875
daß der aktuelle Austauschalgorithmus lh der Lage war, einen Blockaustausch zu vermeiden, den der optimale Algorithmus als notwendig betrachtet haben würde (Fign. HA und 12L). Das L-BIt des übereinstimmenden Wortes des Blockes BL4 wird nun in den O-Zustand rückgestellt (Schritte NE4 bis HB7), und die Operation geht über zum Schritt ME8 (Fig. 11A).
An diesem Punkt führt das System eine Aufdatierungsoperation für die verschiedenen Variablen durch, die der üblichen Aufdatierung während einer Blockaustauschunterberechung entspricht, wenn die zentrale Verarbeitungseinheit CPU einen Block angefordert hat, der nicht im Arbeitsspeicher WM enthalten ist. Im vorliegenden Falle ist der angeforderte Block BL4 im Arbeitsspeicher enthalten; trotzdem durchläuft jedoch das System die vorerwähnte Operationsfolge. Die entsprechende Aufdatierungsoperation, die ausgeführt wird, wenn ein angeforderter Block im Arbeitsspeicher enthalten ist, dessen L-Bit im 1-Zustand steht, kann, daher als eine "Pseudo-Blockaustauschunterbrechung" angesehen werden* Es ergibt sich hieraus, daß nicht alle Aufdatierungsoperationen für die Werte U, A und andere variable Werte durch Anforderungen nach Blöcken eingeleitet werden, die im Arbeitsspeicher nicht enthalten sind.
Zu dieser Zeit (Fig. 12L) ist der einzige im Arbeitsspeicher enthaltene Block, dessen R*-Bit den Wert 1 hat, der Block BL2. Da der Ε-Wert des Blockes BL2 gleich dem laufenden B-Wert 7 ist, verläuft die Operation lediglich in Form einer Schleife durch die Schritte ME8 bis MEl4 und zurück zu ME8 (Fign. HA und HC). Dann geht die Steuerung über die Schritte HE8 bis ME12 zum Schritt ME27. Da der F-Flipflop 2004 Im Zustand 1 steht (Schritt ME2), verzweigt die Steuerung vom Schritt ME27 zum Schritt ME28, wo der Wert A von 7 auf 8 inkrementiert wird. Als nächstes wird der C-Wert auf der achten Adresse der C-Tabelle 600 entsprechend N-I auf 2 eingestellt, und der E-Wert des Blockes B14 wird auf 8 erhöht (Schritte ME29 bis ME31 in den Fign. HA und HC). Hierauf folgend wird das R'-Bit des
Docket YO 968 098 109816/1878
Blockes BL4 auf 1 gesetzt (Schritte ME32 bis ME37)f womit die Operation beendet ist.
Der inkrementierte Wert 8 von A und die dekrementierte Zählstellung 1 von U trägt dem Umstand Rechnung, daß der aktuelle Austauschalgorithmus durch das Heßverfahren für den vermiedenen Blockaustausch, der gemäß dem optimalen Austauschalgorithmus für notwendig gehalten wurde, eine positive Bewertung erfährt. Ein*solches Resultat tritt jedoch nur dann auf, wenn die zentrale Verarbeitungseinheit CPU einen Block anfordert, dessen L-Bit auf 1 steht und der seit Einnahme dieses Status im Arbeitsspeicher geblieben ist. Wenn aus irgendeinem Grunde der Block BL4 aus dem Arbeitsspeicher hätte entfernt werden müssen zwischen * dem Zeitpunkt, als das L-Bit auf 1 gesetzt wurde, und dem Zeitpunkt, als die zentrale Verarbeitungseinheit CPU diesen Block erneut angefordert hätte, wäre das Bit L=I verloren gegangen. Die Eingabe des Blockes BL4 in den Arbeitsspeicher wäre in diesem Falle in der üblichen, oben beschriebenen Weise ohne zusätzliche Operationen vor sich gegangen.
Zweites Anwendungsbeispiel (Fign. 13 und 14A bis 14F) Dieses Anwendungsbeispiel enthält die sogenannte Q-Routine, die durch die Schritte ME16 bis MEl8 von Fig. HC gekennzeichnet ist. Diese Routine wird am Schluß des Beispiels erläutert.
Das Beispiel von Fig. 13 geht davon aus, daß die nachstehende \ Blockaufruffolge ausgeführt werden soll: BLl, BL2, BL3, BL4, BL5, BL2, BL4 (ändern), BLl (ändern), BL6, BL2, BL4, BL;, BL7.
Die ersten sieben Blockaufrufoperationen bis einschließlich des Aufrufes zur Änderung des Blockes BL4 sind identisch mit den ersten sechs Intervallen der aktuellen Aufruffolge von Fig. 4A des ersten Ausführungsbeispiels. Diese Schritte werden daher in der Erläuterung zur Fig. 13 nicht im Detail wiederholt. Nach Ausführung dieser Schritte, für die auf die Erläuterung
Docket YO 968 098 109816/1875
zu Flg. 4A Bezug genommen wird, befindet sich das System in dem aus Fig. 12G ersichtlichen Zustand.
Die nächste Operationsphase (Fig. 14A) wird eingeleitet, wenn die zentrale Verarbeitungseinheit den Block BLl anfordert, der zu diesem Zeitpunkt nicht im Arbeitsspeicher WM,enthalten ist. Die während diesem Intervall auszuführenden Operationen umfassen die Änderung der Informationen im Block BLl, was die * Einstellung des AL-Bits in dem diesem Block zugeordneten Wortspeicherbereich des assoziativen Speichers AM auf 1 zur Folge hat (Fign. 13 und 14A). Die Blöcke BL4 und BLl befinden sich nun beide im geänderten Zustand.
Wenn der Block BL2 angefordert wird (Fig. 14C), ist die einzige Adresse des Arbeitsspeichers WM, die für einen Austausch zur Verfügung steht, die erste Adresse, da die Blöcke BL4 und BLl im geänderten Status sind. Das Meßsystem identifiziert die erneute übertragung des Blockes BL2 in den Arbeitsspeicher WM als eine unnötige übertragung und inkrementiert den Zähler U auf den Zählwert 2. Dem Aufruf von BL2 folgt ein Aufruf des Blockes BL4 (Fig. 14D) und des Blockes BLl (Fig. 14E), die sich beide im Arbeitsspeicher befinden. Damit haben alle drei Blöcke im Arbeitsspeicher WM (BL2, BL4 und BLl) nun ein R'-Bit = 1 erhalten. Während des Aufrufes von Block BLl, wie er während des optimalen Intervalles 8 erfolgt, wird die Aufdatierung des Α-Wertes von 7 auf 8 aufgeschoben, wie aus Fig. 14E ersichtlich ist.
Die von der zentralen Verarbeitungseinheit CPU erzeugte Anforderung nach dem Block BL7 löst dagegen eine Aufdatierungsoperation der verschiedenen Variablen des Meßsysteras aus. Als erstes wird der Zähler P von 9 auf IO inkrementiert (Schritt ME66 in Fig. 13 und 14F). Dann wird in den Schritten ME8 bis MEl4 der assoziative Speicher nach Worten durchsucht, deren R*-Bits 1 sind. Das erste derartige Wort ist das des Blockes BL2 (der Block BL7 wurde noch nicht in den Arbeitsspeicher WM eingegeben). Der Ε-Wert des Blockes BL2 ist gleich dem gegen-Docket YO 968 098 1 0 9 8 1 6 / 1 8 7 b
wärtlgen Α-Wert 7, weshalb die Steuerung vom Schritt ME14 zum Schritt ME8 zurückkehrt und eine neue Suchoperation veranlaßt.
Hierbei wird das dem Block BL4 entsprechende Wort gefunden. Der B-Wert 5 dieses Blockes unterscheidet sich vom laufenden A-Wert 7, entspricht aber dem gegenwärtigen B-Wert 5. Die Steuerung des Systems läuft daher durch die Schritte ME14 und ME15 zu ME2O (Fig. lic) und von da durch die Schritte ME21 bis ME24.
Als Resultat der vorausgehenden Aufdatierungsoperation (Fig.
14C) wurde der C-Wert der siebten Adresse in der C-Tabelle von 2 auf 1 reduziert. Bei der jetzigen Aufdatierungsoperation
wird der gleiche C-Wert weiter auf O reduziert (Fig. 14F). |
Der Test ME24 (Fig. lic) ergibt daher ein "ja"-Ergebnis, das gemäß Schritt ME25 zu einer Erhöhung des B-Wertes von 5 auf führt. Damit ist ein vollständiger Satz von Aufrufen für das Intervall 7 der optimalen Folge von Flg. 13 definiert, der die Blöcke BL6, BL2 und BL4 umfaßt. Hierauf folgend wird der Ε-Wert des Blockes BL4 von 5 auf 7 erhöht (Schritt ME19). Die Steuerung kehrt nun zum Schritt ME8 für die letzte Suchoperation der gegenwärtig laufenden Aufdatierung zurück.
Das letzte im Speicher verbliebene Wort mit einem R*-Bit = 1 ist der Block BLl. Der laufende Ε-Wert des Blockes BLl ist 6, während der aufdatierte Wert von B nun 7 ist. Auch A ist zu diesem Zeitpunkt 7. Der Test ME14 liefert daher ein ™ 11 nein "-Ergebnis, und der Test ME15 liefert ein "ja"-Ergebnis (Fig. lic). Hierdurch wird die Steuerung zum Schritt ME16 geleitet, wo der Zähler Q von O auf 1 inkrementiert wird (Fig. 14F). Außerdem wird auch der Α-Wert von 7 auf 8 inkrementiert. Der Wert Q wurde bereits in einem früheren Abschnitt der Beschreibung als "UnbestimmtheitsfaktorN bezeichnet. Die Effektivitätsformel für den Blockaustausch kann in der folgenden Weise beschrieben werden:
P-(U-Q) „-- PHu *p-*~ L Eff-1 ~
Doocet ΪΟ «8 098 1098l6/1m
Z #47 O
Diese Gleichung gibt den Bereich der möglichen Werte für die Effektivität an. Die Notwendigkeit, einen solchen Bereich zu definieren, ergibt sich aus dem Umstand, daß das offenbarte Meßsystem die Reihenfolge, in welcher für die einzelnen Blöcke die R'-Bits auf 1 gesetzt werden, nicht erfaßt, sondern von der Annahme ausgeht, daß diese Blöcke in der Reihenfolge ihrer Eingabe in den.Arbeitsspeicher aufgerufen werden. Unter bestimmten Bedingungen kann diese Annahme zu einem fehlerhaften Resultat führen hinsichtlich der Effektivität des aktuellen Austauschalgorithmus. Im vorliegenden Anwendungsbeispiel tritt der Fall auf, daß die Blöcke in der gleichen Reihenfolge aufgerufen worden sind, wie sie in den Arbeitsspeicher eingegeben wurden. Unter diesen Umständen ist der aktuelle Austauschalgorithmus berechtigt, einen Zählerwert gutgeschrieben zu erhalten für die Zurückbehaltung des Blockes BLl im Arbeitsspeicher aufgrund des Änderungsstatus dieses Blockes, während der optimale Austauschalgorithmus, der eine Beachtung des Änderungsstatus nicht kennt, eine Rückübertragung des Blockes BLl vom externen Speicher BS zum Arbeitsspeicher WN für notwendig erachtet haben würde. In diesem Falle ist jedoch der dem aktuellen Austauschalgorithmus gutzuschreibende Zählwert ein bedingter oder "fraglicher" Zählwert Q, da bei einer anderen Reihenfolge der BlockaufrufOperationen, die nicht mit der Reihenfolge übereinstimmt, in welcher die aufgerufenen Blöcke in den Arbeitsspeicher eingegeben wurden, es möglich ist, daß der optimale Austauschalgorithmus effektiver gearbeitet haben könnte. Dies wird wahrscheinlich nicht auftreten bei einer Kapazität des Arbeitsspeichers von nur drei Blöcken, es kann jedoch sehr leicht auftreten, wenn der Arbeitsspeicher eine sehr viel größere Kapazität hat, wie es in der Praxis der Fall 1st. Das beschriebene Meßsystem trägt dem Umstand der divergierenden Möglichkeiten einer solchen Situation durch Inkreraentierung der Werte Q und A Rechnung, während eine Dekrementierung des Wertes U unterbleibt. Der U-Zählwert, der durch den Q-Wert unverändert bleibt, setzt daher die untere Grenze des Effektivitätebereiches fest, während der U-Zählerwert, der durch den Q-Wert reduziert wird, die
DocKet TO 968 09. 109816/1875
20A7062 '
obere Grenze des Effektivitätsbereiches angibt, wie es in der obigen Gleichung zum Ausdruck kommt.
Die Steuerung des Systems geht nun zu Schritt ME17 (Fig. lic) über, wo der neue A-Wert 8 zum Y-Register 2010 tibertragen wird, um die achte Registerstelle der C-Tabelle 600 zu adressieren (Fig. HF). Durch den Schritt ME18 wird der (N-I)-Wert 2 in die adressierte Registerstelle als neuer C-Wert eingegeben. Die Steuerung kehrt daraufhin zum Schritt ME19 zurück, in welchem ein neuer A-Wert 8 zur E-Tabelle 2007 übertragen wird als neuer Ε-Wert des Blockes BLl. Hierauf folgend kehrt die Steuerung zum Schritt ME8 der Suchfolge zurück. Da nun keine weiteren Worte im assoziativen Speicher AM enthalten sind, "
deren R1-Bits den Wert 1 haben, ist diese Phase der Aufdatierung der Variablen des Systems beendet, und die Steuerung läuft über die Schritte ME8 bis ME12 und ME27 zu ME42 (Fig. HB).
Mit dem Schritt ME42 wird die Nummer des angeforderten Blockes BL7 vom Register 24 in das X-Register 2011 übertragen. Da der gegenwärtige E-Wert 0 des Blockes BL7 kleiner als der gegenwärtige B-Wert 7 ist, ergibt der Test ME43 (Fig. HB) eine Verzweigung zum Schritt ME48, wo das A-Register 2005 auf 9 inkrementiert wird (Fign. 13 und 14F). Dann wird im Schritt ME49 ein neuer A-Wert von 9 zum Y-Register 2010 übertragen und im Schritt ME50 der (N-I)-Wert 2 zur neunten Registerstelle der ä C-Tabelle 600 übertragen. (Für die vorliegende Beschreibung wurde angenommen, daß die C-Tabelle 6OO eine Kapazität aufweist, die wenigstens neun Registerstellen umfaßt. Wenn die Adressierung jedoch nur über drei binäre Bitstellen erfolgen soll, würde beim Übergang auf 9 die Adressierung zum Wert 1 zurückkehren, und der Umstand, daß tatsächlich die neunte Registerstelle adressiert ist, müßte durch geeignete Mittel, wie beispielsweise der Verwendung eines Übertragsbits in der nächsten Stelle des Adressier-Zählerwerts festgestellt werden). Mit Schritt ME50 wird der neue A-Wert 9 in die E-Tabelle 2007 als aufdatierter Ε-Wert des Blockes BL7 eingeschrieben. Hiermit
Docket YO 968 098 1Q9816/1875
ist die Aufdatierungsoperation für den Block BL7 beendet. Das System geht nun zum Schritt 502 von Fig. 6 und 7 über, gemäß dem die eigentliche Blockaustauschoperation ausgeführt wird, während der der Block BL7 gegen den Block BL2 im Arbeitsspeicher WM ausgetauscht wird. Die zentrale Verarbeitungseinheit CPU ruft nun den Block BL7 im Arbeitsspeicher WM auf, In Verbindung damit erfolgt eine Einstellung der R- und R'-Bits im AM-Wortspeicherbereich, der dem Block BL7 zugeordnet ist, auf 1. Damit ist die Aufruffolge des Beispiels von Fig. 13 beendet.
Im siebten Intervall der optimalen Folge (A = 7) im Beispiel von Fig. 13 gibt das erläuterte Meßsystem eine Anzeige, daß ein vollständiger Satz Blockaufrufe in Form der Blöcke BL6, BL2 und BL4 hätte in diesem Intervall vorgenommen werden können, ohne daß eine Blockaustauschoperation notwendig gewesen wäre. Tatsächlich hat jedoch kein solcher vollständier Satz von Blockaufrufen jemals im Arbeitsspeicher zu irgendeiner Zeit der aktuellen Operationsfolge existiert. Aus den Fign. 14B und 14C in Verbindung mit Fig. 13 ist erkennbar, daß zu verschiedenen Zeiten während des Intervalles 8 und 9 der aktuellen Folge der Arbeitsspeicher WM entweder den Blocksatz BL2, BL4 und BLl oder den Blocksatz BL6, BL4 und BLl enthalten hat, jedoch zu keiner Zeit den Blocksatz BL6, BL2 und BL4.
Dies bedeutet jedoch nicht, daß jeder sogenannte vollständige Satz, der durch das beschriebene Meßsystem definiert wird, nun abstrakt und nicht als reale Tatsache existiert. Es kann der Fall eintreten, daß ein vom System definierter vollständiger Satz Blockaufrufe mit dem Blocksatz übereinstimmt, der sich zu der betreffenden Zeit gerade im Arbeitsspeicher befindet. Oft wird dies jedoch nicht der Fall sein, und in den dargestellten Beispielen tritt eine solche Situation überhaupt nicht auf.
Docket YO 968 098 10 9 816/1875

Claims (17)

  1. - 85 PATENTANSPRÜCHE
    , I. Verfahren zur Messung der Effektivität einer das Prinzip der virtuellen Adressierung benutzenden Datenverarbeitungsanlage beim Austausch von Informationsblöcken zwischen einem mit einer Verarbeitungseinheit in Verbindung stehenden schnellen Arbeitsspeicher begrenzter Kapazität und einem langsameren Großraumspeicher, dadurch gekennzeichnet, daß Austauschintervalle gezählt werden, von denen jedes mit der Anforderung eines nicht im Arbeitsspeicher verfügbaren Blockes durch die Verarbeitungseinheit beginnt und mit der nächsten solchen Anforderung endet, daß die Adressen der aus dem Arbeitsspeicher aufgerufenen Blöcke mit einem Kennzeichen (R1) markiert werden, daß eine Tabelle gespeichert wird, in der eine Beziehung zwischen einer einen aufgerufenen Block identifizierenden Angabe und der Nummer des Austauschintervalles (E), in welchem der betreffende Block nach einem optimalen Austauschalgorithmus letztmalig aufgerufen worden wäre, hergestellt wird, daß am Beginn eines jeden neuen tatsächlichen Austauschintervalles und vor Empfang des angeforderten Blockes im Arbeitsspeicher unter Verwendung der gespeicherten Kennzeichen und Tabellenwerte die jeweilige Zahl der Austauschintervalle bestimmt wird, die nach dem Austauschalgorithmus notwendig gewesen wäre, und daß aus der Differenz zwischen der Zahl der tatsächlich ausgeführten Austauschintervalle und der Zahl der nach dem optimalen Algorithmus notwendig gewesenen Austauschintervalle ein Zählwert für die unnötigen Blockaustauschoperationen gebildet wird.
  2. 2. Verfahren nach Ansprich 1, dadurch gekennzeichnet, daß die Adresse eines aus dem Arbeitsspeicher aufgerufenen Blockes mit einem zusätzlichen Kennzeichen (L) markiert wird, wenn während der Bestimmung der tatsächlich notwendigen Zahl von Austauschintervallen festgestellt wird, daß für die Verfügbarkeit dieses Blockes im Arbeitsspei-
    Docket YO 968 098 109816/1875
    eher nach dem optimalen Austauschalgorithmus eine Austauschoperation notwendig gewesen wäre, und daß beim nächsten Aufruf eines mit einem solchen Kennzeichen behafteten Blockes der Zählwert für die unnötigen Austauschoperationen um 1 reduziert wird.
  3. 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß neben einem Zählwert (P) für die tatsächlich ausgeführten Austauschintervalle ein zweiter Zählwert (A) für die nach dem optimalen Austauschalgorithraus rückblickend notwendig gewesenen Austauschintervalle gebildet wird, daß für jedes der optimalen Austauschintervalle festgestellt wird, ob in ihm alle zur betreffenden Zeit im Hauptspeicher verfügbaren Blöcke aufgerufen wurden (vollständiger Satz von Blockaufrufen), daß ein Wert (B) jeweils entsprechend der Nummer eines Austauschintervalles mit einem vollständigen Satz von Blockaufrufen eingestellt wird und daß der Wert (B) die Basis bildet, bis zu der die rückblickende Bestimmung der notwendig gewesenen Intervallzahl jeweils erfolgt.
  4. 4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß eine Tabelle gebildet wird, in welcher eine Beziehung zwischen der Nummer eines jeden optimalen Austauschintervalles und der um 1 verminderten Blockspeicherkapazität des Arbeitsspeichers hergestellt wird (C-Werte), daß die Tabelleneintragungen für jeden im betreffenden Intervall neu aufgerufenen Block um 1 dekrementiert werden und daß die Tabelleneintragungen nach jeder Dekrementierungsoperation auf O geprüft werden (Definitionen eines vollständigen Satzes von Blockaufrufen) .
  5. 5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß während jeder Bestimmung der tatsächlich notwendig gewesenen Zahl von Austauschintervallen der Zählwert
    (B) für das letzte Austauschintervall, in welchem ein voll-
    Docket YO 968 098 1og818/1875
    ■ 2Q47062 ·
    ständiger Satz von Blockaufrufen erfolgt ist, mit der Tabelleneintragung (E) des angeforderten Blockes für das Austauschintervall des letzten Aufrufes dieses Blockes verglichen wird und daß im Falle von E < B eine Erhöhung der Nummer (A) der optimalen Austauschintervalle ohne gleichzeitige Erhöhung (B) der tatsächlichen Austauschintervalle erfolgt, während bei E > B oder E=B eine solche Erhöhung unterbleibt.
  6. 6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß während äex Intervallzahl-Bestimmungsoperation für jeden im Arbeitsspeicher gespeicherten und ein Kennzeichen (R1) für einen erfolgten Aufruf aufweisenden Block \ geprüft wird, ob die Eintragung (E) für die Intervallnummer, bei welcher dieser Block letztmalig aufgerufen wurde, der Nummer (A) des laufenden Intervalles entspricht, daß für diejenigen Blöcke, für die dies nicht zutrifft, geprüft wird, ob ihr Wert (E) kleiner ist als der Wert (B), der das letzte Intervall mit einem vollständigen Satz von Blockaufrufen angibt, und daß bei E^B eine Dekrementierung des Wertes (D) in der zugehörigen Tabelle für die betreffende Intervallnummer (A) vorgenommen wird.
  7. 7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß
    bei Auftreten einer 0 während der Dekrementierung der λ
    Werte (C) der Wert (B) entsprechend dem Wert (E) eingestellt wird (Definition eines neuen vollständigen Satzes von Blockaufrufen) und daß die Nummer (A) des jeweiligen Intervalles als neuer Wert (E) für den betreffenden Block in die zugehörige Tabelle eingespeichert wird.
  8. 8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß in jeder bei einem Blockaustausch erfolgenden Intervallzahl-Bestimmungsoperation der Wert (E) des aufgerufenen Blockes geprüft wird, ob er kleiner als der das Intervall mit dem letzten vollständigen Satz
    Docket YO 968 098 109816/1875
    von Blockaufrufen bezeichnende Wert (B) ist, daß bei E < B die Intervallnuramer (A) erhöht und der um 1 verminderte Konstantwert der Block-Speicherkapazität des Arbeitsspeichers als Wert (C) des neuen Intervalles gespeichert wird und daß andernfalls der Zählwert (U) der unnötigen Übertragungen um 1 erhöht wird und eine Dekrement!erung der Werte (C) in der zugehörigen Tabelle vorgenommen wird, wenn der das Intervall des letzten Aufrufes anzeigende Wert (E) dieses Blockes mit der Nummer (A) des laufenden Intervalles nicht übereinstimmt.
  9. 9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß nach Auftreten einer O während der Dekrementierung der die Zahl der Blockaufrufe pro Intervallnummer anzeigenden Werte (C) für jeden der im Arbeitsspeicher enthaltenen Block geprüft wird, ob sein das Intervall des letzten Aufrufes bezeichnender Wert (E) kleiner ist als der Wert (B) der das Intervall mit dem letzten vollständigen Satz von Blockaufrufen angibt, und daß bei E < B das zusätzliche Kennzeichen (L) des betreffenden Blockes markiert wird als Anzeige, daß der optimale Austauschalgorithmus für diesen Block eine Austauschoperation als notwendig angesehen hätte.
  10. 10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß bei einer Intervallzahl-Bestimmungsoperation für die im Arbeitsspeicher enthaltenen und mit dem Kennzeichen (R1) für einen erfolgten Aufruf markierten Blöcke bei Gleichheit der Nummer(A) des jeweiligen Intervalles mit dem das Intervall des letzten Aufrufes für diesen Block anzeigenden Wert (E) und bei einem Zurückliegen des Wertes (E) hinter dem jeweiligen Wert (B) für das letzte Intervall mit einem vollständigen Satz von Blockaufrufen (Bedingung E < B) ein ünbestimmtheits-Zählwert (Q) um 1 inkrementiert wird, der eine Aussage über möglicherweise unnötige Austauschoperationen enthält, und daß in Verbindung mit dieser Inkrementierung die Nummer (A) des laufenden Intervalles und die zu
    Docket YO 968 098 109816/1875
    diesem Intervall bzw. zum jeweiligen Block gehörenden Tabellenwerte (C und E) auf den neuesten Stand gesetzt werden.
  11. 11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die gemessene Effektivität definiert ist durch folgende Beziehung:
    worin B die Zahl der tatsächlich ausgeführten Austauschoperationen, U die Zahl der festgestellten unnötigen Austauschoperationen und Q die Zahl der möglicherweise unnötigen Austauschoperationen sind. |
  12. 12. Einrichtung zur Durchführung des Verfahrens nach den Ansprüchen 1 bis 11 bei Datenverarbeitungsanlagen mit einer zentralen Verarbeitungseinheit, mit einem schnellen Arbeitsspeicher verhältnismäßig kleiner Kapazität, der von der zentralen Verarbeitungseinheit aufrufbare Informationsblöcke speichert, mit einem langsameren Großraumspeicher (externer Speicher) von erheblich größerer Kapazität sowie mit einem Übertragungskanal zur Übertragung von Informationsblöcken, die von der zentralen Verarbeitungseinheit angefordert werden und nicht im Arbeitsspeicher enthalten sind, vom Großraumspeicher zum Arbeitsspeicher sowie zur Rückübertragung nicht mehr benötigter Blöcke zum Großraum- " speicher, dadurch gekennzeichnet, daß eine in der Zeit der Übertragung eines von der zentralen Verarbeitungseinheit angeforderten, nicht im Arbeitsspeicher verfügbaren Informationsblocks vom Großraumspeicher zum Arbeitsspeicher in Tätigkeit setzbare Steuerschaltung (ME) vorgesehen ist, daß je ein von dieser Steuerschaltung betriebener Zähler (P, 2005 und U) für die nach einem benutzten Blockaustauschalgorithmus tatsächlich ausgeführten Blockaustauschoperationen, für die nach einem optimalen Blockaustauschalgorithmus nachträglich als notwendig erkannten Blockaustauschopera-
    Docket YO 968 098 10 9 818/1875
    tionen und für die als unnötig festgestellten Blockaustauschoperationen vorgesehen ist, daß ein inhaltsadressierbarer Zuordnerspeicher (AM) vorgesehen ist, in welchem zu jeder Arbeitsspeicheradresse eine Blockidentifizierungsangabe (Blocknummer) speicherbar ist, über welche bei einem Blockaufruf die zugehörige Arbeitsspeicheradresse erhalten wird, daß in den Blockidentifizierungsangabe/Arbeitsspeicheradresse-Eintragungen des Zuordnerspeichers jeweils das Kennzeichen (R1) für einen erfolgten Aufruf des betreffenden Blockes . enthalten ist und daß von der Steuerschaltung (ME) betätigte und diese ihrerseits steuernde Vergleichseinrichtungen (2013 bis 2015; 2020 bis 2022) und Inkrementierungs-Dekrementierungsschaltungen (2012 und 2010) zur Prüfung und Erneuerung der gespeicherten Angaben (A, B, C und E) über das jeweilige und die zurückliegenden Austauschintervalle und den angeforderten sowie die im Arbeitsspeicher enthaltenen Informationsblöcke vorgesehen sind.
  13. 13. Einrichtung nach Anspruch 10, dadurch gekennzeichnet, daß ein Tabellenspeicher (2007) vorgesehen ist, der durch die Blockidentifizierungsangaben (Blocknummer) adressierbar ist und der auf den einzelnen Adressenstellen vom Zähler (2005) gelieferte Intervallnummern als den Blöcken zugeordnete Anzeigewerte (E) für das Intervall des letzten Aufrufes speichert.
  14. 14. Einrichtung nach Anspruch 12 und 13, dadurch gekennzeichnet, daß ein zweiter Tabellenspeicher (600) vorgesehen ist, der mit der vom Zähler (2005) gebildeten Nummer (A) des laufenden Austauschintervalles adressierbar ist und zur Aufnahme der den Austauschintervallen zugeordneten Anzeigewerte (C) für die Zahl der im betreffenden Intervall erfolgten Blockaufrufe dient, daß der Ausgang des Tabellenspeichers (600) mit einer Dekrementierungsschaltung (2012) verbunden ist, in der die adressierten Werte (C) wahlweise um 1 dekrementierbar sind, und daß an die Dekrementierungsschaltung
    Docket YO 968 098 109816/1876
    eine O-Vergleichs- und Anzeigeschaltung (2020 bis 2022) angeschlossen ist.
  15. 15. Einrichtung nach einem der Ansprüche 12 bis 14, dadurch gekennzeichnet, daß der Zuordnerspeieher (AM) ein assoziativer Speicher ist, dessen Wortspeicherbereiche ein Feld für eine festeingespeicherte Arbeitsspeicheradresse und mehrere Felder für wahlweise einspeicherbare Angaben aufweisen, die eine Blockidentifizierungsangabe (Blocknummer), ein Kennzeichen (R1) für einen erfolgten
    , Blockaufruf und ein Kennzeichen (L) für einen gegenüber dem Bezugsalgorithmus vermiedenen Blockaustausch enthalten, und daß der assoziative Speicher einen Wortzähler (98) I
    aufweist, der bei einer Assoziationsoperation die seriale Adressierung der Wortbereiche steuert.
  16. 16. Einrichtung nach Anspruch 12 bis 15, dadurch gekennzeichnet, daß die Wortspeicherbereiche des assoziativen Speichers (AM) ein zusätzliches Feld für eine Steuermarkierung (SS) enthalten, das als Assoziationsmerkmal dient, wenn innerhalb einer Erneuerungsoperation der Angaben (A, B, C, E) über die Austauschintervalle und die Informationsblöcke alle im Arbeitsspeicher enthaltenen Blöcke aufzurufen sind.
  17. 17. Einrichtung nach einem der Ansprüche 12 bis 16, dadurch gekennzeichnet, daß eine bistabile Steuerschaltung (2003) vorgesehen ist, die beim Aufruf eines im Arbeitsspeicher enthaltenen Blockes, dessen Wortspeicherbereich im assoziativen Speicher (AM) ein Kennzeichen (L) für einen gegenüber dem Bezugsalgorithmus vermiedenen Blockaustausch aufweist, die Steuerschaltung (ME) zur Inkrementierung der Intervallnummer (A) und zur Dekrementierung des Zählers (U) für die unnötigen Austauschoperationen sowie zur Erneuerung der Angaben (A, B, C, E) der übrigen im Arbeitsspeicher enthaltenen, ein Kennzeichen (R1) für einen er-
    Docket YO 968 09 8 109816/1875
    folgten Aufruf aufweisenden Blöcke steuert, obwohl kein Blockaustausch auszuführen ist.
    Docket YO 968 098 10 9 816/1875
DE19702047062 1969-10-02 1970-09-24 Verfahren und Einrichtung zur Messung der Effektivität einer Daten Verarbeitungsanlage mit virtueller Adre»»ici uiig Pending DE2047062A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US86326569A 1969-10-02 1969-10-02

Publications (1)

Publication Number Publication Date
DE2047062A1 true DE2047062A1 (de) 1971-04-15

Family

ID=25340716

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19702047062 Pending DE2047062A1 (de) 1969-10-02 1970-09-24 Verfahren und Einrichtung zur Messung der Effektivität einer Daten Verarbeitungsanlage mit virtueller Adre»»ici uiig

Country Status (6)

Country Link
US (1) US3577185A (de)
JP (1) JPS4823688B1 (de)
CH (1) CH516195A (de)
DE (1) DE2047062A1 (de)
FR (1) FR2077507B1 (de)
GB (1) GB1270483A (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1404379A (en) * 1973-01-02 1975-08-28 Ibm Data processing apparatus
US3964028A (en) * 1973-08-02 1976-06-15 International Business Machines Corporation System and method for evaluating paging behavior
US3921153A (en) * 1973-08-02 1975-11-18 Ibm System and method for evaluating paging behavior
US4056848A (en) * 1976-07-27 1977-11-01 Gilley George C Memory utilization system
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US5129087A (en) * 1988-02-03 1992-07-07 International Business Machines, Corp. Computer system and a method of monitoring transient data structures in a computer system
US5142670A (en) * 1988-07-26 1992-08-25 International Business Machines Corporation Method and apparatus for calculating disk-access footprints for use in selecting a storage management method
JP2674809B2 (ja) * 1988-11-07 1997-11-12 日本電気株式会社 情報処理装置
US5274834A (en) * 1991-08-30 1993-12-28 Intel Corporation Transparent system interrupts with integrated extended memory addressing
JPH06131312A (ja) * 1992-01-23 1994-05-13 Hitachi Ltd 並行処理方法およびシステム
US6199176B1 (en) * 1993-03-11 2001-03-06 International Business Machines Corporation Method and apparatus for storage resource reassignment utilizing an indicator to enhance the likelihood of successful reconfiguration
US5748498A (en) * 1995-07-05 1998-05-05 Compal Electronics, Inc. Method and a device for detecting execution efficiency of a CPU in computer system
US5793941A (en) * 1995-12-04 1998-08-11 Advanced Micro Devices, Inc. On-chip primary cache testing circuit and test method
US6799248B2 (en) 2000-09-11 2004-09-28 Emc Corporation Cache management system for a network data node having a cache memory manager for selectively using different cache management methods
US6493801B2 (en) * 2001-01-26 2002-12-10 Compaq Computer Corporation Adaptive dirty-block purging
US7400112B2 (en) * 2001-06-20 2008-07-15 Helen Of Troy Limited Autoilluminating rechargeable lamp system
US8775453B2 (en) * 2007-03-27 2014-07-08 Ca, Inc. System and method for reducing memory usage of tree-based data structures

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE629069A (de) * 1962-03-05
US3292152A (en) * 1962-09-17 1966-12-13 Burroughs Corp Memory
US3292153A (en) * 1962-10-01 1966-12-13 Burroughs Corp Memory system
GB1052596A (de) * 1964-06-30 1900-01-01

Also Published As

Publication number Publication date
JPS4823688B1 (de) 1973-07-16
CH516195A (de) 1971-11-30
FR2077507B1 (de) 1976-03-19
US3577185A (en) 1971-05-04
FR2077507A1 (de) 1971-10-29
GB1270483A (en) 1972-04-12

Similar Documents

Publication Publication Date Title
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
DE68927621T2 (de) Echtzeitdatenbasis
DE2047062A1 (de) Verfahren und Einrichtung zur Messung der Effektivität einer Daten Verarbeitungsanlage mit virtueller Adre»»ici uiig
DE1499182C3 (de) Datenspeichersystem
DE1956604B2 (de) Datenverarbeitungsanlage
DE1928202A1 (de) UEberwachungs- und Statistikeinrichtung fuer Datenverarbeitungssysteme
DE2630323A1 (de) Datenspeichereinrichtung
DE3741953A1 (de) Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen
DE2501853A1 (de) Prozessor fuer ein datenverarbeitungssystem
DE2415900A1 (de) Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen
DE2521436A1 (de) Informationswiedergewinnungsanordnung
DE3685711T2 (de) Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen.
DE1499288B2 (de) Datenverarbeitungsanlage
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE1424732A1 (de) Elektronische Ziffernrechenmaschine
DE2758830A1 (de) Rechenvorrichtung
DE3518818C2 (de)
DE2218839A1 (de) Verfahren und einrichtung zur zuteilung von speicheradressen zu datenelementen
DE2221442A1 (de) Assoziativspeicher
DE2436932A1 (de) Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher
DE68928782T2 (de) Datenverwaltungssystem
DE68926753T2 (de) Einrichtung zur Wiederauffindung von Datenfolgen
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten
DE69808700T2 (de) Cachespeichervorrichtung
DE2519195A1 (de) Assoziativspeicher