DE3788824T2 - Vorrichtung und Verfahren zur Seitenersetzung in einem Datenverarbeitungssystem mit virtuellem Speicher. - Google Patents

Vorrichtung und Verfahren zur Seitenersetzung in einem Datenverarbeitungssystem mit virtuellem Speicher.

Info

Publication number
DE3788824T2
DE3788824T2 DE3788824T DE3788824T DE3788824T2 DE 3788824 T2 DE3788824 T2 DE 3788824T2 DE 3788824 T DE3788824 T DE 3788824T DE 3788824 T DE3788824 T DE 3788824T DE 3788824 T2 DE3788824 T2 DE 3788824T2
Authority
DE
Germany
Prior art keywords
page
descriptor
main memory
data
state information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3788824T
Other languages
English (en)
Other versions
DE3788824D1 (de
Inventor
James B Geyer
Victor M Morganti
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.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
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 Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Application granted granted Critical
Publication of DE3788824D1 publication Critical patent/DE3788824D1/de
Publication of DE3788824T2 publication Critical patent/DE3788824T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
    • 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

Landscapes

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

Description

  • Diese Erfindung bezieht sich allgemein auf Datenverarbeitungssysteme und insbesondere auf Datenverarbeitungssysteme, die eine Vielzahl von zentralen Verarbeitungseinheiten haben, die die Techniken des virtuellen Adressierens verwenden, um mit einer Hauptspeichereinheit zusammenzuwirken.
  • In dem modernen Datenverarbeitungssystem wird typischerweise ein hierarchisches Speichersystem verwendet. Die Menge von Daten, auf die von einem Datenverarbeitungssystem zugegriffen werden kann, ist auf Massenspeichermedien, wie z. B. einem Magnetband, Magnetplatten oder anderen Medien gespeichert, die in der Lage sind, große Mengen von digitaler Information zu speichern. Diese Medien sind typischerweise zu langsam, um das direkte Adressieren der gespeicherten Daten durch eine zentrale Verarbeitungseinheit zu erlauben. Eine Speichereinheit, die im allgemeinen als die Hauptspeichereinheit bezeichnet wird, ist mit einer schnelleren Technologie implementiert und speichert Teile der Daten, die von dem Datenverarbeitungssystem angefordert werden. (Obwohl es nicht direkt mit der vorliegenden Erfindung in Beziehung steht, ist im allgemeinen ein Speicher von noch schnellerer Technologie, der zum Speichern von Daten von unmittelbarer Bedeutung für die Zentralverarbeitungseinheit verwendet wird, und der physikalisch in der zentralen Verarbeitungseinheit angeordnet ist, in dem Datenverarbeitungssystem eingeschlossen. Die Speichervorrichtung in dem Prozessor wird als der Puffer oder Cache-Speicher bezeichnet).
  • Jeder Prozessor hat mit Hilfe des Betriebssystemes Zugriff auf alle verfügbaren Daten, die dem Datenverarbeitungssystem zugeordnet sind, und kann diese Daten wie erforderlich benutzen. Praktisch wird das Wiedergewinnen der geforderten Daten von den Massenspeichervorrichtungen wegen der Größe der für den Prozessor verfügbaren Daten einen nachteiligen Effekt auf die Effizienz der Prozeßausführung haben. Die Daten, die unmittelbar von dem Datenverarbeitungssystem angefordert werden, werden in der Hauptspeichereinheit gespeichert. Da das Speichern all der Daten in dem Hauptspeicher unpraktisch ist, sind die Daten in Datenblöcke aufgeteilt, die Seiten genannt werden, die in die Hauptspeichereinheit als eine Gesamtheit eingegeben werden.
  • Bei den virtuellen Speichertechniken weist das Betriebssystem zu Beginn des Betriebes der Datenverarbeitungseinheit den in der Hauptspeichereinheit verfügbaren Raum zu. Hauptspeicherraum wird Programmen, Tabellen und Abschnitten des Betriebssystems zugeordnet werden, die für den Betrieb des Datenverarbeitungssystems erforderlich sind. Die Inhalte dieses Bereiches im Speicher werden nicht ersetzt, wie es typisch für den Rest der in dem Hauptspeicher gespeicherten Daten ist. Der Rest der Speichereinheit ist in gleiche Blöcke aufgeteilt, wo Gruppen von miteinander in Bezug stehenden Datensignalen, die für das Datenverarbeitungssystem wichtig sind, gespeichert werden können. Diese Datensignalblöcke werden als Seitenrahmen bezeichnet. Jedem Seitenrahmen ist eine Gruppe von Datensignalen in einer Tabelle von miteinander in Bezug stehenden Signalen zugeordnet, die als der Seitenrahmen-Deskriptor bezeichnet wird. Das Betriebssystem kann auf den Seitenrahmen-Deskriptor verweisen und der Seitenrahmen-Deskriptor identifiziert oder zeigt auf den Ort des zugeordneten Seitendeskriptors. Der Seitendeskriptor umfaßt Information, die die virtuelle oder symbolische Adresse, die von den Prozessoren eines Datenverarbeitungssystems gehandhabt wird, mit der tatsächlichen oder physikalischen Adresse, wo die ursprüngliche Information gespeichert ist, in Beziehung setzt. Jedem Seitendeskriptor sind auch Signale zugeordnet, die sich auf Zustandsinformation beziehen. Der Seitenrahmen-Deskriptor weist auch Datensignale an einem Ort auf, der als ein Binder (Linker) bezeichnet wird, der die Reihenfolge der Seitenrahmen gemäß einem vorausgewählten Algorithmus anzeigt, der definiert, wie die Reihenfolge der Seitenrahmen definiert sein soll.
  • Nach der Initialisierung des Datenverarbeitungssystems wird ein Prozessor eine Gruppe von Datensignalen anfordern. Eine Softwareprozedur wird die Information bereitstellen, die die physikalische Adresse mit der symbolischen Adresse für die geforderte Gruppe von Datensignalen in Bezug setzt. Die Information, die diese Quantitäten verbindet, ist in dem Seitendeskriptor gespeichert. Die geeignete Information wird in den Binderabschnitt des Seitenrahmen-Deskriptors eingegeben, der anzeigt, daß dies der Erste der Folge von Seitenrahmen ist. Wenn zusätzliche Seitenrahmen hinzugefügt werden, wird die Binderinformation die Reihenfolge des Seitenrahmens in der Folge identifizieren. Nachdem die Seitenrahmen alle mit Daten besetzt sind, wird ein Prozessor fortfahren Zugriff auf neue Daten zu fordern, was erfordert, daß ein Seitenrahmen, der schon Daten enthält, neue Daten haben wird, die die alten Daten ersetzen. Es ist die Implementierung dieses Seitenrahmen-Datenaustauschs, auf die sich die vorliegende Erfindung bezieht.
  • Aus der Binderinformation kann der nächste mögliche Seitenrahmen in der Folge von Seitenrahmen bestimmt werden. Basierend auf der Binderinformation kann der Seitendeskriptor, der dem Seitenrahmen zugeordnet ist, identifiziert werden und der Seitendeskriptor kann in den Prozessor eingegeben werden. Der Prozessor prüft unter Softwaresteuerung in dem Stand der Technik die Werte der Zustandssignale in dem Seitendeskriptor und, basierend auf den Werten der Signale, wird eine Entscheidung getroffen, ob die Daten in dem Seitenrahmen ausgetauscht werden können. Zum Beispiel bezieht sich ein Zustandssignal, das häufig verwendet wird, auf die Erfahrung, daß die optimale Strategie für den Austausch von Daten die ist, die am wenigsten kürzlich verwendeten Daten auszutauschen. Das Implementieren der Strategie der am wenigsten kürzlich verwendeten Daten erfordert einen unakzeptablen Betrag an Verarbeitungs-Overhead. Eine typische Strategie ist es, das "Daten verwendet"-Signal zu entfernen gemäß einer vorbestimmten Prozedur, und das "Daten verwendet"-Signal in den Seitendeskriptor zu setzen, wann immer die einem Seitenrahmen zugeordneten Daten verwendet werden. Auf diese Weise können die Softwareprozeduren bestimmen, daß die Daten in einer vorausgewählten Zeitperiode benutzt worden sind.
  • Zusätzlich können noch andere Zustandssignale dem Seitenrahmen zugeordnet sein. Auf Grund der Vielzahl von Zustandssignalen kann eine Softwareprozedur, die eine Entscheidung bezüglich dem Austauschen der zugeordneten Gruppe von Daten bereitstellt, komplex sein und eine unakzeptable Menge an Verarbeitungsaktivität erfordern.
  • Wenn das Programm, das den Betrieb des datenverarbeitenden Systems steuert, Datensignalgruppen anfordert, die derzeit nicht in dem Hauptspeicher gespeichert sind, wird der Austauschalgorithmus aufgerufen. Beim Stand der Technik wurde der Austauschalgorithmus durch einen Softwareprozeß ausgeführt, der eine Analyse der verschiedenen Zustandssignale erforderte. Während dem Bestimmen der auszutauschenden Seitenrahmendaten wurde der Zugriff auf den Deskriptor verhindert, um die Verwendung von Daten zu verhindern, die in dem Änderungsprozeß sein können. Eine Technik, um Zugriff während dieser Periode möglichen Datenwechsels zu verhindern, war es, den Speicher von Abschnitten des Speichers mit einer Speicher-"Sperre" zu versehen, wobei die Speichersperre den Zugriff auf den Hauptspeicher oder ausgewählte Abschnitte davon verhinderte. Diese Technik war effektiv beim Gewährleisten, daß geeignete Daten von den Prozessoren verwendet wurden, aber, wegen der relativ langsamen Ausführung des Softwareaustauschalgorithmus, konnte die Effizienz des gesamten Datenverarbeitungssystemes stark beeinflußt werden. (Wie es für den Fachmann klar sein wird, betrifft die Speichersperre typischerweise aus praktischen Gründen eine Vielzahl von Speicherstellen). Die Effizienz wird daher betroffen sein, auch wenn nicht auf die besondere Stelle zugegriffen wird, die von dem Austauschalgorithmus analysiert wird.
  • Um die Reservierung eines Hauptspeicherabschnittes während der Ausführung des Austauschalgorithmus zu eliminieren, sind Techniken verwendet worden, die die Ausführung des Austausches ohne Reservierung des Hauptspeicherabschnittes erlauben. Gemäß dieser Technik wird eine Bestimmung gemacht, nachdem eine Austauschseitenrahmenauswahl für eine bestimmte Stelle getroffen worden ist, ob eine Änderung in den Zustandssignalen des Seitenrahmenvorsatzes während der Ausführung des Austauschalgorithmus aufgetreten ist. Diese Technik erforderte zusätzliche Komplexität in dem Datenverarbeitungssystem.
  • Aus dem Dokument des Standes der Technik, IBM Technical Disclosure Bulletin, Band 23, No. 12, Mai 1981, Seiten 5516-5519, R.L. Hoffman et al.: "Refereüce and change bit recording", ist ein Referenz- und Änderungsbit-Aufzeichnungssystem in einem Computersystem mit einem virtuellen Speicher bekannt, wobei ein Seitenaustauschmechanismus verwendet wird, der ein Hauptverzeichnis umfaßt, das in dem Hauptspeicher angeordnet ist, und mit einem externen Vorgriffspuffer zusammenarbeiten. Diese Anordnung ermöglicht, daß ein Referenz- und Änderungsbit-Aufzeichnen stattfindet ohne eine hinzugefügte Speichermatrix und ohne signifikante Effizienzverschlechterung.
  • Computersystementwerfer haben immer noch einen Bedarf nach verbesserten Techniken, die die Bestimmung einer Hauptspeicherstelle erlaubt, die dazu geeignet ist, daß die derzeit darin gespeicherten Daten durch neue Daten ausgetauscht werden, die von dem Datenverarbeitungssystem gefordert werden.
  • Es ist daher das Ziel der Erfindung, eine verbesserte Einrichtung und ein Verfahren für den Austausch eines Seitenrahmens von Daten in dem Hauptspeicher eines Datenverarbeitungssystems gemäß vorausgewählten Kriterien bereitzustellen, die auf Zustandssignalen basieren, die den Seitenrahmen von Daten zugeordnet sind.
  • Dieses und andere Ziele werden durch eine Einrichtung und ein Verfahren gemäß den Ansprüchen 1 bzw. 6 erreicht und werden offensichtlicher werden, wenn sie in Verbindung mit der folgenden Beschreibung und den beigefügten Zeichnungen genommen werden, die ein bevorzugtes Ausführungsbeispiel der Erfindung zeigen.
  • In dem Datenverarbeitungssystem ist eine Anweisung vorgesehen, die neue Zustandssignale, basierend auf den ursprünglichen Zustandssignalen erzeugt, während sie die Wirkung auf die Verfügbarkeit der Hauptspeichereinheit minimiert. Während einer Seitenrahmen-Austauschprozedur wird der Seitendeskriptor; der dem nächsten Seitenrahmen zugeordnet ist, der auf eine Geeignetheit zum Austausch geprüft wird, zu dem Prozessor transferiert. Der Anweisung, die den Austauschsbestimmungsalgorithmus ausführt, ist eine Tabelle aus resultierenden Zustandssignalwerten zugeordnet. Die Zustandssignale des Seitendeskriptors werden benutzt, um einen geeigneten Eintrag in der Anweisungstabelle auszuwählen. Die ausgewählten resultierenden Zustandssignale zeigen an, ob die zugeordneten Seitenrahmendaten ausgetauscht werden sollten, und die ausgewählten Zustandssignale können dazu benutzt werden, andere Aktivität, die von dem Prozessor gefordert wird, anzuzeigen. Die ausgewählten Zustandssignale werden in dem Deskriptor gespeichert und in dem Hauptspeicher gespeichert.
  • Fig. 1 ist ein Blockdiagramm eines Datenverarbeitungssystems, das in der Lage ist, die vorliegende Erfindung zu benutzen.
  • Fig. 2 ist ein Diagramm, das die Aufteilung der Hauptspeichereinheit in eine Vielzahl von Speicherstellengruppen veranschaulicht.
  • Fig. 3a ist ein Diagramm, das die Beziehung zwischen der Seitenrahmen- Deskriptorentabelle und der Seitentabelle veranschaulicht, Fig. 3b veranschaulicht die Zuweisung der Bitpositionen in dem Seitendeskriptor und Fig. 3c veranschaulicht die Identifizierung der Zustandssignale in dem Seitendeskriptor.
  • Fig. 4 ist ein Diagramm der Bitpositionen der Austauschanweisung.
  • Fig. 5a veranschaulicht die Einträge in der Übersetzungstabelle, während Fig. 5b Beispiele der Verwendung der Übersetzungstabelle bereitstellt.
  • Fig. 6 ist ein Blockdiagramm der Einrichtung in der Ausführungseinheit, die die Austauschanweisung ausführt.
  • Fig. 7 ist ein Flußdiagramm, das veranschaulicht, wie die Austauschanweisung durch eine Softwareprozedur implementiert werden kann.
  • Fig. 8 veranschaulicht die Trennung der Hauptspeichereinheit in Sektoren mit dem Zweck, den Zugriff zu beschränken.
  • Bezugnehmend jetzt auf Fig. 1 ist ein Datenverarbeitungssystem gezeigt, das in der Lage ist, vorteilhaft die vorliegende Erfindung zu benutzen Das Datenverarbeitungssystem weist zumindest einen Prozessor (veranschaulicht durch Prozessor 10 und Prozessor 11), eine Hauptspeichereinheit 15, zumindest eine periphere Schnittstelleneinheit (veranschaulicht durch die periphere Schnittstelleneinheit 12 und die periphere Schnittstelleneinheit 13) und einen Systembus 19 auf. In dem Datenverarbeitungssystem, das in Fig. 1 veranschaulicht ist, speichert der Hauptspeicher die Datensignalgruppen, die von den Prozessoren gehandhabt werden sollen. In der Hauptspeichereinheit 15 wird während der Initialisierung des Systems der Speicherraum des Hauptspeichers in eine Vielzahl von Bereichen aufgeteilt, wobei jeder Bereich zum Speichern einer vorher festgestellten Menge an Logiksignalen ist. Zusätzlich hat die Hauptspeichereinheit bestimmte Bereiche reserviert für Dateien, die zugänglich für die Prozessoren sind. Die Verwendung einer gemeinsamen Hauptspeichereinheit für eine Vielzahl von Prozessoren ist als ein "eng gekoppeltes" System beschrieben.
  • Bezugnehmend jetzt auf Fig. 2 ist eine diagrammartige Darstellung der Organisation des Hauptspeichers gezeigt. Diese Organisation wird typischerweise während der Initialisierung des Datenverarbeitungssystems aufgebaut. Der Bereich 21 ist im allgemeinen für das Betriebssystem, Programme und Tabellen, die von dem Datenverarbeitungssystem angefordert werden, reserviert. Der Rest der Hauptspeicherstellen ist in Gruppen von Hauptspeicherstellen aufgeteilt, die als Seitenrahmen bezeichnet werden. Fig. 2 veranschaulicht Seitenrahmen #1 22 bis Seitenrahmen #Q. Es wird klar sein, daß Fig. 2 eine idealisierte Darstellung der Organisation der Hauptspeicherstelle ist. Typischerweise würde der Bereich 21 zerstückelt und über die Hauptspeichereinheit verstreut sein. Die Numerierung der Seitenrahmen ist willkürlich und kennzeichnet höchstens nur eine physikalische Stelle in der Hauptspeichereinheit.
  • Bezugnehmend als nächstes auf die Fig. 3a, 3b und 3c ist eine Organisation von Tabellen, die von besonderer Wichtigkeit für die vorliegende Erfindung ist, gezeigt. In Fig. 2 ist eine Tabelle von Seitenrahmen-Deskriptoren 31 aufgebaut während der Initialisierung des Datenverarbeitungssystems. Jeder Seitenrahmen-Deskriptor ist einem der Seitenrahmen 22 bis 23 von Fig. 2 zugeordnet. Der Zweck des Seitenrahmen-Deskriptors, wie er sich auf die vorliegende Erfindung bezieht, ist es, die physikalische Adresse der derzeit in dem zugeordneten Seitenrahmen gespeicherten Daten zu identifizieren. Diese Aufgabe wird durch Bereitstellen eines Zeigers auf die Seitentabelle 34 und insbesondere auf den Seitendeskriptor 35 bewerkstelligt, der den derzeit in dem Seitenrahmen gespeicherten Daten zugeordnet ist. Der Seitenrahmen-Deskriptor weist auch eine Gruppe von Stellen auf, die die Reihenfolge des Seitenrahmens relativ zu dem anderen Seitenrahmen definiert. Wenn die Daten in einem Seitenrahmen ausgetauscht bzw. ersetzt werden, gewährleistet der Binder, der die Ordnung der Seitenrahmen implementiert, daß alle die anderen Seitenrahmen in dem Hauptspeicher wieder nach Austausch von Daten durchgeschaut werden, bevor der Seitenrahmen mit den gerade ersetzten Daten wieder angeschaut wird. Fig. 3b veranschaulicht die Struktur des Seitendeskriptors 35, der in Fig. 3a gezeigt ist. Der Seitendeskriptor weist Zustandssignale 37 in den Bitpositionen 0-3 und eine Seitenrahmennummer; die den Seitenrahmen identifiziert, in Bitpositionen 4-23 auf. Fig. 3c stellt eine Identifizierung der Zustandsbits in dem bevorzugten Ausführungsbeispiel bereit. Die erste Position ist das Gültig- Bit und zeigt an, wenn die Datenseite in einem Seitenrahmen in Hauptspeicherdaten in dem Seitenrahmen ist. Die zweite Position ist das Benutzt-Bit und wird jedesmal gesetzt, wenn auf die Daten in dem zugeordneten Seitenrahmen zugegriffen wird. Position 3 ist das Modifiziert-Bit und zeigt an, daß es eine Differenz zwischen den Daten in dem Seitenrahmen und den Daten gibt, von denen der Seitenrahmen extrahiert worden war. Das Zustandsbit in der vierten Position ist zur Zeit reserviert für zukünftige Interpretation.
  • Bezugnehmend als nächstes auf Fig. 4 ist die Struktur der Anweisung gezeigt, die den Austauschalgorithmus ausführt. Die ersten 16 Bitpositionen identifizieren den Operationscode der Anweisung. Die zweiten 16 Bit und mögliche zusätzliche 16-Bitdatensignalgruppen stellen einen Zeiger auf dem Seitendeskriptor bereit. In den letzten vier Gruppen von 16 Bit ist die Übersetzungstabelle enthalten.
  • Bezugnehmend auf Fig. 5a sind die Übersetzungstabelleneinträge gemäß dem bevorzugten Ausführungsbeispiel gezeigt. Die Tabelleneintrage sind in hexadezimaler Schreibweise angezeigt. Die gegenwärtige Übersetzung ist in Fig. 5b veranschaulicht, die zeigt, wie die Zustandssignale des Seitendeskriptors durch den Austauschalgorithmus modifiziert werden.
  • Bezugnehmend als nächstes auf Fig. 6 ist die Einrichtung, die die Anweisung implementiert, veranschaulicht. In der Ausführungseinheit eines Prozessors wird das Anweisungsregister 61 mit Datensignalen geladen, die durch den Operationscode der Anweisung bestimmt sind. Die Signale von dem Anweisungsregister werden an die Dekodier- und Steuereinrichtung 62 angelegt. Die Dekodier- und Steuereinrichtung 62 legt Signale an die Adressiereinrichtung 63 an. Unter der Steuerung der Dekodier- und Steuereinrichtung 62 werden die Zustandssignale von dem wiedergewonnenen Seitendeskriptor, die in dem Register 64 der Arbeitsregister 60 gespeichert sind, als das Adreßsignal verwendet, um einen Eintrag in der der Anweisung zugeordneten Übersetzungstabelle zu adressieren. Der Eintrag, der durch die Zustandssignale über die Adreßeinrichtung 63 adressiert ist, stellt die neuen Zustandssignale bereit, die in dem Seitendeskriptor gespeichert werden sollen. Die Signalanalyseeinheit 66 wird verwendet, um anzuzeigen, daß ein Austauschseitenrahmen identifiziert worden ist, und um die Prozedur zu beginnen, um die gewünschte Informationsseite in dem Seitenrahmen zu speichern.
  • Bezugnehmend als nächstes auf Fig. 7 ist das Flußdiagramm zum Prüfen der Seitendeskriptoren gezeigt, um zu bestimmen, ob der zugeordnete Seitenrahmen ausgetauscht werden sollte. Nach dem Beginnen des Prozesses in Schritt 700, zum Beispiel durch Ausführen der in Fig. 4 veranschaulichten Anweisung, wird der nächste Seitendeskriptor ausgewählt. Diese Auswahl ist durch die Binderspeicherstellen 34, die in Fig. 3a veranschaulicht sind, bestimmt. Der Binder, in dem bevorzugten Ausführungsbeispiel, wählt einen Seitendeskriptor aus, der ungeprüft durch den Austauschalgorithmus geblieben ist. Nach Auswahl des zu prüfenden Seitendeskriptors werden die Zustandssignale, die einen Abschnitt des Seitendeskriptors bilden, von dem Hauptspeicher im Schritt 702 wiedergewonnen. In Schritt 703 wird das Gültig-Zustandssignal geprüft. Wenn das Gültig-Zustandssignal einen negativen Wert hat, wird der Seitendeskriptor nicht in Schritt 704 geändert und die Prozedur kehrt zu Schritt 701 zurück, um einen nächsten Seitendeskriptor auszuwählen. Wenn das Gültig-Signal einen positiven Wert hat, wird das Benutzt-Signal im Schritt 705 geprüft. Wenn das Benutzt-Signal einen positiven Wert hat, wird die Benutzt-Bit-Position zu einem negativen Wert geändert und die neuen Zustandssignale werden in den geeigneten Seitendeskriptorpositionen im Hauptspeicher im Schritt 706 gespeichert.
  • Die Prozedur kehrt dann zu Schritt 701 zurück, um einen nächsten Deskriptor zur Prüfung auszuwählen. Wenn das Benutzt-Signal einen negativen Wert hat, dann wird das Modifiziert-Zustandssignal im Schritt 707 geprüft. Wenn das Modifiziert-Zustandssignal einen positiven Wert hat, dann wird das Modifiziert-Bit zu einem negativen Wert geändert, während ein Befehl ausgegeben wird, um die Daten in den Seitenrahmen in Übereinstimmung mit den Daten zu bringen (oder zu reinigen), von denen die Seitenrahmendaten im Schritt 708 abgeleitet worden waren. Wenn das Modifiziert-Zustandssignal einen negativen Wert hat, dann ist der zugeordnete Seitenrahmen einer, der zum Austausch geeignet ist. Schritt 709 ändert die Zustandssignale zu überall negativen Werten und speichert diese Werte in geeigneten Positionen in dem Seitendeskriptor. Der Seitendeskriptor wird ungültig gemacht und die Daten in den Seitenrahmen werden mit der geforderten Datenseite ersetzt. Der Seitendeskriptor wird modifiziert, um die neuen Daten, die in dem Seitenrahmen gespeichert sind, darzustellen über Schritt 710. Der Seitendeskriptor ist in der Folge von Seitenrahmen über den Binder in dem Seitenrahmendeskriptor ausgetauscht und der Prozeß zum Austauschen von Daten in einem Seitenrahmen ist beendet, d. h. Schritt 711.
  • Bezugnehmend als nächstes auf Fig. 8 wird in dem bevorzugten Ausführungsbeispiel die Hauptspeichereinheit durch zwei Steuereinrichtungen A und B gesteuert. Jede Speichersteuereinrichtung steuert eine Hälfte der Speicherstellen. In jeder Steuereinrichtung sind die zugeordneten Speicherstellen in eine Vielzahl von Sektoren 83 aufgeteilt. Der Zugriff zu jedem Sektor kann durch die zugeordnete Speichersteuereinrichtung gesteuert werden. Daher, wenn zum Beispiel eine Speicherstelle in dem Änderungsprozeß ist, kann die Steuereinrichtung einen Zugriff auf den bestimmten Sektor verhindern, ohne den Zugriff auf den gesamten Bereich zu beschränken, der der Speichersteuereinrichtung zugeordnet ist.
  • Wegen dem Aufwand und der Komplexität wird die Zugriffssteuerung zu individuellen Speicherstellen selten implementiert. Aus diesem Grunde resultiert das Beschränken des Zugriffes auf eine bestimmte Speicherstelle in dem Beschränken des Zugriffes auf eine Vielzahl von Speicherstellen und jede längere Beschränkung des Zugriffs kann potentiell die Effizienz des Datenverarbeitungssystems treffen.
  • Die vorliegende Erfindung löst das Problem des Zugriffs auf den Hauptspeicher durch Prozessoren während einer möglichen Änderung in dem Stelleninhalt durch Bereitstellen einer effizienten Bestimmung des Seitenaustauschalgorithmus. Auf diese Weise ist der Abschnitt des Hauptspeichers, der während der Ausführung des Algorithmus reserviert ist, nur für eine kurze Zeitperiode reserviert, wodurch die Wirkung auf die Effizienz des Datenverarbeitungssystems minimiert wird. An Stelle einer Softwareprozedur, die den Zugriff auf Sektionen des Hauptspeichers für eine unakzeptierbare Zeitperiode beschränken kann, ist die Bestimmung der Geeignetheit eines Seitenrahmens für den Austausch bestimmt durch eine Anweisung, in der die Zustandssignale, die den Seitenrahmen zugeordnet sind, als Adreßsignale benutzt werden, um einen Eintrag in eine Tabelle zu bestimmen. Die Tabelle ist der Anweisung selbst zugeordnet. Die Einträge in der Anweisung können in einer relativ kurzen Zeitperiode bestimmt werden. Diese neuen oder resultierenden Zustandssignale können unmittelbar in dem Deskriptor gespeichert werden. Weil die neuen Zustandssignale die Benutzung des zugeordneten Seitenrahmens verhindern, kann der Speichermechanismus, der den Zugriff auf den Hauptspeichersektor beschränkt, der den Speicherdeskriptor umfaßt, entfernt werden. Die relativ kurze Zeit, die für diese Prozedur benötigt wird, minimiert die Wirkung auf die Hauptspeicherzugreifbarkeit und demzufolge auf die Datenverarbeitungssystemeffizienz.
  • Ein wichtiges Merkmal der Implementierung eines Algorithmus in einer Softwareprozedur ist die Flexibilität der Prozedur. Wenn zum Beispiel eine unterschiedliche Interpretation eines Zustandsignales gewünscht wird, können die Folgen dieser Änderung in der Interpretation durch zugeordnete Änderungen in den Schritten der Prozedur bereitgestellt werden. Es wird klar sein, daß diese Flexibilität in der vorliegenden Erfindung durch die Stelle in der Anweisung bewahrt wird, auf die die Gruppe von Zustandssignalen gerichtet ist. Durch Ändern resultierender Signale kann die Flexibilität aufrechterhalten werden.

Claims (8)

1. In einem Datenverarbeitungssystem, in dem der Hauptspeicher Blöcke von Daten in der Form von Seiten hält, und worin ein Deskriptor in dem Hauptspeicher für jede Seite, die in dem Hauptspeicher vorliegt, gehalten wird, weist der Deskriptor Zustandsinformation auf, die den derzeitigen Aggregatstatus der zugeordneten Seite beschreibt; eine Vorrichtung zum Ausführen einer bestimmten Art von Anweisung zum Bestimmen, welche Seite zu ersetzen ist, wenn, während dem Betrieb des Systems, es notwendig wird, eine neue Seite in den Hauptspeicher einzugeben, wobei die Anweisung einen einzigen Operationscode und eine Adresse zum Zugreifen auf einen der Deskriptoren aufweist; gekennzeichnet durch:
eine Tabelle (65), die in dem Hauptspeicher gehalten wird, die für jede unterschiedliche Art von derzeitigem Aggregatstatus, der in einem Deskriptor enthalten sein kann, neue Statusinformation enthält, die den neuen Aggregatstatus einer Seite beschreibt, um die gleiche Speicherstelle die von dem derzeitigen Aggregatstatus dargestellte Seite zu besetzen;
eine Wiedergewinnungseinrichtung (61, 62, 63) zum Antworten auf den Operationscode und die Adresse bei der bestimmten Art von Anweisung zum Wiedergewinnen der Zustandsinformation, die in dem adressierten Deskriptor gehalten wird;
eine Adressiereinrichtung (63), die weiter auf den bestimmten Anweisungsoperationscode reagiert, um die wiedergewonnene Zustandsinformation als eine Adresse an die Tabelle anzulegen, um die entsprechende neue Zustandsinformation von dem Hauptspeicher zu lesen; und
eine signalanalysierende Einrichtung (66) zum Empfangen der wiedergewonnenen neuen Zustandsinformation, die anzeigt, daß eine Ersatzseite identifiziert worden ist, und die eine Prozedur initiiert, um zu veranlassen, daß eine Seite, die in dem Hauptspeicher gehalten wird, der neuen Zustandsinformation entspricht.
2. Vorrichtung gemäß Anspruch 1, worin die Prozedur identifiziert, wenn ein Seitenrahmen von Daten durch einen neuen Seitenrahmen von Daten ersetzt werden kann.
3. Vorrichtung gemäß Anspruch 2, die weiter eine Einrichtung aufweist, die auf ausgewählte neue Zustandssignale antwortet, um den Seitenrahmen von Daten, der den gespeicherten Zustandssignalen zugeordnet ist, durch einen neuen Seitenrahmen von Daten zu ersetzen.
4. Einrichtung gemäß Anspruch 2, worin ein erstes Bit der Zustandsinformation sich auf die Verwendung des zugeordneten Seitenrahmens von Daten bezieht, und worin ein zweites Bit von Zustandsinformation sich auf die Modifikation des zugeordneten Seitenrahmens von Daten bezieht.
5. Vorrichtung gemäß Anspruch 1, worin die Adresse, die von der Adressiervorrichtung (36) bereitgestellt wird, verwendet wird, um einen vorbestimmten der Einträge in der Tabelle zu adressieren, wobei der vorbestimmte Eintrag ein Ersatzdeskriptorfeld ist, gekennzeichnet durch eine Einrichtung zum Speichern des Ersatzfeldes in dem Deskriptor in dem Hauptspeicher.
6. In einem Datenverarbeitungssystem, in dem der Hauptspeicher Blöcke von Daten in der Form von Seiten hält, und worin ein Deskriptor in einem Hauptspeicher für jede Seite gehalten wird, die in dem Hauptspeicher anwesend ist, weist der Deskriptor Zustandsinformation auf, die den derzeitigen Aggregatstatus der zugeordneten Seite beschreibt; ein Verfahren zum Ausführen einer bestimmten Art von Anweisung zum Bestimmen, welche Seite zu ersetzen ist, wenn, während dem Betriebs des Systems, es notwendig wird, einen neue Seite in den Hauptspeicher einzugeben, wobei die Anweisung einen einzigen Operationscode aufweist und eine Adresse, um auf einen der Deskriptoren zuzugreifen; gekennzeichnet durch:
Halten einer Tabelle in dem Hauptspeicher, die für jede unterschiedliche Art von derzeitigem Aggregatstatus, der in einem Deskriptor enthalten sein kann, neue Zustandsinformation aufweist, die den neuen Aggregatstatus einer Seite beschreibt, die die gleiche Speicherstelle wie die durch den derzeitigen Aggregatstatus dargestellte Seite besetzt;
Erhalten dieser bestimmten Art von Anweisung;
Zugreifen unter Steuerung des Operationscodes und der Adresse in der bestimmten Art von Anweisung auf die Deskriptoren, um die Zustandsinformation wiederzugewinnen, die in dem adressierten Deskriptor gehalten wird;
Anlegen der wiedergewonnenen Zustandsinformation als eine Adresse an die Tabelle, um die entsprechende neue Zustandsinformation aus dem Hauptspeicher zu lesen; und
Antworten auf die wiedergewonnene neue Zustandsinformation, um anzuzeigen, daß eine Ersatzseite identifiziert worden ist, und um eine Prozedur zu initiieren, um zu veranlassen, daß eine Seite, die in dem Hauptspeicher gehalten wird, der neuen Zustandsinformation entspricht.
7. Verfahren gemaß Anspruch 6, das weiter den Schritt des Ersetzens des Zustandssignales durch den Anweisungstabelleneintrag in dem Deskriptor aufweist.
8. Verfahren gemaß Anspruch 6, das weiter den Schritt des Wiedergewinnens eines Deskriptors aufweist, der nicht auf Ersatz geprüft worden ist, für die längste Zeitperiode, wenn der wiedergewonnene Seitendeskriptor nicht geeignet zum Ersetzen ist.
DE3788824T 1986-05-30 1987-05-27 Vorrichtung und Verfahren zur Seitenersetzung in einem Datenverarbeitungssystem mit virtuellem Speicher. Expired - Fee Related DE3788824T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/869,146 US4833603A (en) 1986-05-30 1986-05-30 Apparatus and method for implementation of a page frame replacement algorithm in a data processing system having virtual memory addressing

Publications (2)

Publication Number Publication Date
DE3788824D1 DE3788824D1 (de) 1994-03-03
DE3788824T2 true DE3788824T2 (de) 1994-07-14

Family

ID=25353012

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3788824T Expired - Fee Related DE3788824T2 (de) 1986-05-30 1987-05-27 Vorrichtung und Verfahren zur Seitenersetzung in einem Datenverarbeitungssystem mit virtuellem Speicher.

Country Status (19)

Country Link
US (1) US4833603A (de)
EP (1) EP0250876B1 (de)
KR (1) KR930009092B1 (de)
CN (1) CN1010715B (de)
AR (1) AR244897A1 (de)
AT (1) ATE100613T1 (de)
AU (1) AU597666B2 (de)
BR (1) BR8702715A (de)
CA (1) CA1284390C (de)
DE (1) DE3788824T2 (de)
DK (1) DK276887A (de)
ES (1) ES2049721T3 (de)
FI (1) FI90805C (de)
IL (1) IL82681A0 (de)
IN (1) IN167131B (de)
MX (1) MX171149B (de)
NO (1) NO174311C (de)
PH (1) PH25271A (de)
YU (1) YU99187A (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2778786B2 (ja) * 1990-03-02 1998-07-23 富士通株式会社 データ更新・復元処理方式
US5386538A (en) * 1991-04-30 1995-01-31 Texas Instruments Incorporated Data cache access for signal processing systems
US5740448A (en) * 1995-07-07 1998-04-14 Sun Microsystems, Inc. Method and apparatus for exclusive access to shared data structures through index referenced buffers
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6782464B2 (en) 2001-07-17 2004-08-24 International Business Machines Corporation Mapping a logical address to a plurality on non-logical addresses
US7242682B1 (en) 2002-10-09 2007-07-10 Storage Technology Corporation Hardware frame modifier apparatus and method for storage virtualization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1548401A (en) * 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
US4084230A (en) * 1976-11-29 1978-04-11 International Business Machines Corporation Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control
USRE37305E1 (en) * 1982-12-30 2001-07-31 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence

Also Published As

Publication number Publication date
EP0250876A2 (de) 1988-01-07
NO872263L (no) 1987-12-01
KR870011534A (ko) 1987-12-24
ATE100613T1 (de) 1994-02-15
KR930009092B1 (ko) 1993-09-22
EP0250876A3 (en) 1990-04-25
DK276887D0 (da) 1987-05-29
FI872396A (fi) 1987-12-01
MX171149B (es) 1993-10-05
CA1284390C (en) 1991-05-21
BR8702715A (pt) 1988-03-01
FI872396A0 (fi) 1987-05-29
IN167131B (de) 1990-09-01
IL82681A0 (en) 1987-11-30
AU597666B2 (en) 1990-06-07
FI90805C (fi) 1994-03-25
US4833603A (en) 1989-05-23
EP0250876B1 (de) 1994-01-19
FI90805B (fi) 1993-12-15
CN87104487A (zh) 1988-02-17
DE3788824D1 (de) 1994-03-03
NO872263D0 (no) 1987-05-29
CN1010715B (zh) 1990-12-05
NO174311B (no) 1994-01-03
AU7369387A (en) 1987-12-03
DK276887A (da) 1987-12-01
ES2049721T3 (es) 1994-05-01
PH25271A (en) 1991-03-27
YU99187A (en) 1990-06-30
AR244897A1 (es) 1993-11-30
NO174311C (no) 1994-04-13

Similar Documents

Publication Publication Date Title
DE2350884C2 (de) Adreßumsetzungseinheit
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE3685863T2 (de) Rechnersystem zur steuerung virtueller maschinen.
DE3011552C2 (de)
DE68923437T2 (de) Adressenübersetzung für Seiten mehrfacher Grösse.
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69021899T2 (de) DMA-Steuerung.
DE3785897T2 (de) Steuervorrichtung zum vorabruf von befehlen.
DE3151745C2 (de)
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE2414311C2 (de) Speicherschutzeinrichtung
DE3852695T2 (de) Multiprozessorsystem mit mehreren Speichern.
DE2455047A1 (de) Datenverarbeitungssystem
DE3587031T2 (de) Zugriffpruefungseinrichtung fuer digitale datenverarbeitungsanordnung, welche einen speicher mit seitenabruf hat.
DE4123550C2 (de) Informationsverarbeitungssystem mit direktem Speicherzugriff
DE3338329C2 (de)
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2718551B2 (de)
DE2134816A1 (de) Einrichtung zur adressenuebersetzung
DE3688136T2 (de) Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.
DE3788824T2 (de) Vorrichtung und Verfahren zur Seitenersetzung in einem Datenverarbeitungssystem mit virtuellem Speicher.
DE3787129T2 (de) Cachespeicher mit veränderlichen Abholungs- und Ersetzungsschemen.
DE3586524T2 (de) Durch beide, physikalische und virtuelle addressen, addressierbarer cache-speicher.
DE2847737C2 (de) Schaltung zur Umsetzung virtueller Adressen in eine reelle Adresse von größerer Länge

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: BULL HN INFORMATION SYSTEMS INC., BILLERICA, MASS.

8339 Ceased/non-payment of the annual fee